阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Django视图介绍与路由

172次阅读
没有评论

共计 1471 个字符,预计需要花费 4 分钟才能阅读完成。

一、概述

  • 作用

    接收 web 请求并返回 web 响应

  • 本质

    就是 python 函数

  • 请求

    客户端给服务端的信息

  • 响应

    服务端给客户端的信息,可以是一个网页、一个重定向、一个 404 错误、json 数据等

  • 图解

Django 视图介绍与路由

二、路由 (URLconf)

1、在配置文件中指定根级路由

ROOT_URLCONF = 'project.urls'

2、path() 函数与 re_path() 函数

  • 概述

    在新版本 Django2.x 中,url 的路由表示用 path 和 re_path 代替,模块的导入由 django1.x 版本的 from django.conf.urls import url,include 变成现在的 Django2.x 中的 from django.urls import path, re_path, include

  • 作用

    路由匹配

  • path()

    • 参数

      route:是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项

      view:当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入

      name:为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式 (反向解析)

    • 注意

      route 使用的是非正则表达式可以表示的普通路由路径

  • re_path()

    参数

    • route:使用正则表达式
    • view:使用正则表达式
    • name:使用正则表达式
  • 说明

    如果匹配的规则比较复杂建议使用 re_path()

3、在根级路由中指定子路由

  • urlpatterns

    一个 path 对象的列表

  • path() 对象的作用

    在主路由中主要是引入其他子路由模块

  • 基本使用

    from django.urls import path, include from django.contrib import admin urlpatterns = [path(r'admin/', admin.site.urls), path(r'', include('App.urls')), ]
  • include() 函数

    • 作用:找到子路由模块

    • 参数

      • 子路由模块路径
      • 命名空间:用于反向解析
    • 带命名空间

      from django.urls import path, include from django.contrib import admin urlpatterns = [path(r'admin/', admin.site.urls), path(r'', include(('App.urls', "App"),namespace="App")), ]
  • 多个子路由模块

    # 假设有多个应用 # http://www.sunck.wang:8000/App/index1 # 匹配 App/index1 App3/home2 # path(r'App/', include('App.urls')), # path(r'App1/', include('App1.urls')), # path(r'App2/', include('App2.urls')), # path(r'App3/', include('App3.urls')),

3、在应用目录下创建名为 urls.py 的文件作为子路由

  • 目录结构

    project/ App/ urls.py # 自定义 urls.py 文件 project/ urls.py
  • urlpatterns

    一个 path 对象的列表

  • path() 对象的作用

    根据路由匹配不同的视图

  • 导入

    from django.urls import path, re_path

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-05-26发表,共计1471字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中