zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Django 01 Django中的路由系统详解编程语言

2023-06-13 09:11:47 时间

简述

当一个请求来到时,Django首先会在项目目录下的urls.py下定义的urlpatterns(由Django.urls.path或Django.urls.re_path对象组成的列表)列表中查找路由规则,如果匹配到,Django就会执行与该条规则绑定的views视图函数,并将函数的返回值返回给客户端。如果发现与该条规则绑定的是include,Django就会到include制定的特定App目录下的urls.py中再开始匹配。如果出错或者没有匹配到路由规则,则返回404。

 

path(form Django.urls import path)

  path(route, view, kwargs=None, name=None)

-route 为一个url规则

-view 是该条路由要绑定的views视图函数的名称,此处也可以放置include( AppName.url )将该条路由分配到特定App下的urls.py中继续匹配

-kwargs 额外参数,可以传递给views函数,其值必须为一个字典。如果此处定义了数据,那么views函数的参数列表中也要接收该参数

-name url的命名

 

在url中捕获参数

  在url规则中使用· 变量名 `可以捕获到url中的值传递给视图(视图函数参数列表需要有对应接收)

  实例 path( /student/detail/ stu_id , include( student.urls ))

  注意此处捕获的值是字符串

路径转换器

  使用方法 转换器 : 变量名 例如 int : stu_id

  常用的转换器

-str 匹配除了‘/’路径分隔符之外的所有字符串

-int 匹配任意整数

-slug 匹配任意acsii字符

-uuid 格式化id

-path 匹配任意非空字符

 

re_path(route, view, kwargs=None, name=None)

url规则使用正则表达式

 

与URL重定向相关操作

  (from django. import reverse, redirect)

  根据url命名获取url

  url = reverse( UrlName )

  return redirect(url)

 

App命名(解决多个App当中会出现相同的url命名的问题)

  在App的url配置文件中定义app_name = AppName

  如果定义过了AppName那么在重定向的过程中可以使用、

  return redirect(reverse( AppName : UrlName ))

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/17376.html

cgo