django项目中的urls配置文件中定义的urlpatterns是一个url实例类型的python列表,列表中的子项,通过django.conf.urls的url模块(url模块是一个实现正则表达式到python函数视图直接的映射的功能)实现通过正则匹配访问的url信息,匹配到后调用函数或子urlpatterns进行二次匹配。
urlpatterns
urlpatterns是一个url实例类型的python列表。
urlpatterns中的每个正则表达式匹配项,在第一次被访问的时候进行编译。
url函数
url(regex, view, kwargs=None, name=None)
- regex:简单的正则表达式
- view:view参数是一个视图函数或者
as_view()
(基于类的视图)的结果 - kwargs:传递额外的参数给视图
- name:url名称 (前后端混在一起的时候常用,与flask中的url_for函数名一样)
include
include(module,namespace=None,
app_name=None
)
include(pattern_list)
include(
(pattern_list,app_namespace),
namespace=None
)
include(
(pattern_list,app_namespace,instance_namespace)
)
- module:导入一个urls的模块
urlpatterns = [
url(r'^dashboard/', include("子app项目.urls")),
]
- namespace:导入一个URL命名空间
这块得先做个演示,正常简单的定义url是酱汁的,很多重复项
urlpatterns = [
url(r'^user/login/',login),
url(r'^user/logout/',logout),
url(r'^user/changepass',changepass),
url(r'^user/changewx',changewx),
url(r'^user/changephone',changewx),
]
通过url命名空间来写
可以很明确的看到级别关系,这个可以持续嵌套
urlpatterns = [
url(r'^user/',include([
url(r'^login',login),
url(r'^logout',logout),
url(r'^changepass',changepass),
...
]))
]
- app_name:app命名空间
- pattern_list:可迭代的django.conf.urls.url()实例
- app_namespace:应用的命名空间
- instance_namespace:实例的命名空间
网友评论