include
include()函数有三种方式形式:
include(module, namespace=None)- module:子URL的模块字符串
- namespace:实例命名空间。继续注意需要指定应用命名空间,就是在子
urls.py中添加app_name变量
include ((pattern_list, app_namesapce), namespace=None)- pattern_list: 一个元组:
(另外一个'urls.py', 应用命名空间) - namespace: 命名空间
- 即应用命名空间既可以在子
urls.py中,也可以在include函数指定
- pattern_list: 一个元组:
include (pattern_list)- pattern_list: 是一个
list,装的是path()或者re_path 代码
urlpatterns = [path (r"index/", include(path("", views.index_page),path("02/", views.index_02),))]
可以不同在子urls.py中指定子URL。
- pattern_list: 是一个
- 一般都使用第一种
include()
re_path
- 作用和
path()一样。 re_path()的第一个参数可以使用正则表达式- 正则表达式推荐使用原生字符串,即
r"正则表达式" - 在正则表达式中定义变量,需要使用圆括号括起来。
- 参数的定义:
?P<variable_name> - 在后面添加正则表达式的规则
- 参数的定义:
- 类似Django1.8的
url()函数
reverse
path(‘reverse/‘, include(“CMS.urls”)),
```python# app的urls.pypath('index', views.do_index),path('index/<name>/<age>', views.do_param, name="withName"),
# views.pydef do_index(request):return redirect(reverse("CMS:withName", kwargs={"name": "jack", "age": 22}))# 注意!reverse参数的name如果在创建前有定义应用命名空间,就需要 应用命名:url_name 的格式def do_param(request, name, age):return HttpResponse("param name is {}, age is {}".format(name, age))
- 运行 键入
127.0.0.0.1:8000/index则跳转127.0.0.0.1:8000/index/jack/22- 如果想要添加查询字符串的参数,则必须手动进行拼接
