Django框架-url

urls.py
默认在主文件夹中,包含所有的地址映射。
每当一个请求产生后,都会到urls.py中进行地址的匹配,匹配上后再找到对应的处理程序(View视图)去执行

主文件夹中urls.py程序
from django.contrib import admin
from django.urls import path, include, re_path

urlpatterns = [
path(‘admin/’, admin.site.urls),
re_path(r’^’,include(‘index.urls’)) #映射到index应用中的urls.py
]

path参数

path(regex,views,kwargs=None,name=None)
1、regex
正则表达式,匹配请求的 url
2、views
URL处理的视图函数,通常都是自定义的
3、kwargs
字典,用来向views传参的参数
4、name
字符串,给url()起一个别名,主要在模板中配合{%url%}一起使用

Django支持三种表达route:

1、 精确字符串格式:articles/2017/
一个精确URL匹配一个操作函数;最简单的形式,适合对静态URL的响应;URL字符串不以“/”开头,但要以“/”结尾
2、 Django的转换格式:<类型:变量名>,articles/int:year/
是一个URL模版,匹配URL同时在其中获得一批变量作为参数;是一种常用形式,目的是通过URL进行参数获取和传递转换格式类型
说明
Str 匹配除分隔符(/)外的非空字符,默认类型等价于str:year
Int 匹配0和正整数
Slug 匹配字母、数字、横杠、下划线组成的字符串,str的子集
Uuid 匹配格式化的UUID,如075194d3-6885-417e-a8a8-6c931e272f00
path 匹配任何非空字符串,包括路径分隔符,是全集
3、 正则表达式格式:articles/(?p[0-9]{4})/
借助正则表达式丰富语法表达一类URL(而不是一个);可以通过<>提取变量作为处理函数的参数,高级用法;使用该方法时,前面不能使用path()函数,必须使用re_path()函数;表达的全部是str格式,不能是其他类型。
两种形式:不提取参数,比如re_path(articles/([0-9]{4}/,表示四位数字,每一个数字都是0到9的任意数字;提取参数,命名形式(?Ppattern),比如re_path(articles/(?P[0-9]{4})/,将正则表达式提取的四位数字,每一个数字都是0到9的任意数字命名为year,

你可能感兴趣的:(django,url)