yaraning

 

思维导图   

Django的路由系统

Django的路由系统就是URL调度程序(就是一个Python模块),URL配置(URLconf)就是Django所支撑网站的目录.

它的本质是URL模式(简单正则表达式)与Python函数(视图函数)之间的映射.

 URLconf配置

 基本格式

from django.conf.urls import url

urlpatterns = [
    # url(正则表达式,views视图,参数,别名),
]

参数说明:

  • 正则表达式 : 一个正则表达式字符串
  • views视图 : 一个可调用对象,通常为一个视图函数
  • 参数 : 可选的要传递给视图函数的默认参数(字典形式)
  • 别名 : 一个可选的name参数

示例:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r\'^articles/2003/$\', views.special_case_2003),
    url(r\'^articles/([0-9]{4})/$\', views.year_archive),
]

注意:
Django 2.0版本中的路由系统是下面的写法(官方文档):

from django.urls import path,re_path

urlpatterns = [
    path(\'articles/2003/\', views.special_case_2003),
    path(\'articles/<int:year>/\', views.year_archive),
]

2.0版本中re_path和1.11版本的url是一样的用法。

正则表达式详解

基本配置

from django.conf.urls import url
from app01 import views
urlpatterns = [
    url(r\'^blog/[0-9]{4}\', views.year),
]

url地址:

分组命名分配

 

from django.conf.urls import url
from app01 import views
urlpatterns = [
    url(r\'^blog/([0-9]{4})\', views.year),
]

结果:

 

所以要在视图函数中加上分组对应的参数:

from django.shortcuts import render,HttpResponse

def year(request,y):
    return HttpResponse(\'ok\')

上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值,并以位置参数形式传递给视图.

在更高级的用法中,可以使用分组命名匹配的正则表达式来捕获URL中的值,并以关键字参数形式传递给视图.

在Python的正则表达式中,分组命名正则表达式组的语法是(?P<name>pattern),其中name是组的名称,pattern是要匹配的模式.

 

分类:

技术点:

相关文章:

  • 2021-10-16
  • 2021-08-08
  • 2021-12-01
  • 2021-06-09
  • 2021-06-10
  • 2019-12-29
  • 2018-11-07
  • 2021-12-26
猜你喜欢
  • 2019-09-06
  • 2018-04-11
  • 2021-12-24
  • 2021-06-12
  • 2021-08-09
相关资源
相似解决方案