标签:uil 兼容 通用 封装 import sci ascii 部分 列表
urls.py中默认就有urlpatterns,可以把它看作一个存放了映射关系的列表。
django2.0中常用的是path()方法,还可以使用re_path()方法来兼容1.x版本中的url()方法。
regext
和view
kwargs
和name
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path(‘articles/2018/‘, views.special_case_2018),
path(‘articles/<int:year>/‘, views.year_archive),
path(‘articles/<int:year>/<int:month>/‘, views.month_archive),
path(‘articles/<int:year>/<int:month>/<slug:slug>/‘, views.article_detail),
]
注:
匹配例子:
默认情况下,Django内置下面的路径转换器:
0863561d3-9527-633c-b9b6-8a032e1565f0
。返回一个UUID对象;/
。
写一个类,并包含下面的成员和属性:
例如,新建一个converters.py文件,与urlconf同目录,写个下面的类:
class FourDigitYearConverter:
regex = ‘[0-9]{4}‘
def to_python(self, value):
return int(value)
def to_url(self, value):
return ‘%04d‘ % value
写完类后,在URLconf 中注册,并使用它,如下所示,注册了一个yyyy:
from django.urls import register_converter, path
from . import converters, views
register_converter(converters.FourDigitYearConverter, ‘yyyy‘)
urlpatterns = [
path(‘articles/2018/‘, views.special_case_2018),
path(‘articles/<yyyy:year>/‘, views.year_archive),
...
]
Django2.0的url虽然改‘配置’了,但它依然向老版本兼容。
而这个兼容的办法,就是用re_path()方法代替path()方法。
re_path()方法在骨子里,根本就是以前的url()方法,只不过导入的位置变了。
下面是一个例子,对比一下Django1.11时代的语法,有什么太大的差别?
from django.urls import path, re_path
from . import views
urlpatterns = [
path(‘articles/2003/‘, views.special_case_2003),
re_path(r‘^articles/(?P<year>[0-9]{4})/$‘, views.year_archive),
re_path(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$‘, views.month_archive),
re_path(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$‘, views.article_detail),
]
参考引用:
http://www.liujiangblog.com/blog/17/
标签:uil 兼容 通用 封装 import sci ascii 部分 列表
原文地址:https://www.cnblogs.com/tielemao/p/9252239.html