diango中的url路由系统

一.url配置

  url本质是url与要为该url调用的视图函数之间的映射表

  urlpatterns = [正则,视图函数[,别名]]

二.正则表达式

  1.匹配原则

    django是循环urlpatterns这个列表,一旦匹配到,就不再往下进行匹配

  2.分组匹配

    把正则进行分组r"^index/([0-9]{4})/([0-9]{2})/"  分组后,视图函数就要用位置参数来接收值,正则捕获的都是字符串格式

  3.命名分组匹配

    把正则进行分组并命名,r"^index/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/",命名分组后,传给视图函数的参数就是关键字参数了,需要用对用的year,month形参名来接收参数

  4.优化匹配

    由于django是循环匹配的,所有多个应用时数据量大匹配的比较慢.就有了分发include模块

    url(r"^app1/",include(app1.urls)),先匹配前面的,然后再去app1.urls匹配(需要在每个app中创建urls.py)

三.别名和反向解析

  1.别名

    url(正则,视图函数,name = "xxx"),name的值就是别名

  2.反向解析

    html中的反向解析,{% url "xxx" [参数] %},其实就是模板渲染

    视图函数中的反向解析,redirect(reverse("别名",[*args]))

原文地址:https://www.cnblogs.com/q767498226/p/10427662.html