Django-url配置(分组)

url配置

无名分组

urlpatterns = [
    url(r‘^index/‘, views.index),
    url(r‘^books/(\d{4})/‘, views.books),#无名分组  (\d{4})
]
def books(request,year):#这里的year对应的就是(\d{4})正则匹配出来的数据
    # print(year)
    return HttpResponse(year)

位置参数

urlpatterns = [
    url(r‘^index/‘, views.index),
    url(r‘^books/(\d{4})/(\d[1,2])/‘, views.year_month_books),  # 无名分组  匹配年份的
    url(r‘^books/(\d{4})/$‘, views.year_books),#无名分组  匹配年份+月份  $符号的作用是防止匹配不到月份,完全匹配的作用


]
视图
    def year_books(request, year):
        return HttpResponse(year)

    def year_month_books(request, year, month):
        return HttpResponse(year + month)
 #位置参数 第一个参数接收的就是无名分组路径中匹配的第一个分组的数据,第二个参数接收的就是无名分组路径中匹配的第二个分组的数据      

有名分组

url(r‘^books/(?P<year>\d{4})/(?P<month>\d[1,2])/‘, views.year_month_books), 
#视图里面的函数形参名称要和url中的分组名对应好,参数位置没有眼球

注意:

  1. urlpatterns中的元素书写顺序从上往下逐一匹配正则表达式,一旦匹配成功,就不再继续匹配
  2. 如要从URL中捕获一个值,只需要在它周围放置一对圆括号(分组匹配)
  3. 不需要添加一个前导的反斜杠(也就是写在正则前面的那个/),因为每个url都有 例如,应该是artices而不是/artices
  4. 每个正则表达式前面的‘r‘都建议加上
  5. ^artices& 以什么结尾 ,以什么开头,严格限制路径

APPEND_SLASH=False

配置的意思是最后面加/跟不加/的区别,浏览器默认的是True,如果访问的时候不加/,Django会自动加上斜杠再请求一遍,想等于两边请求.如果这个参数改为False,如果请求的时候不加/,则会报错

所以一般在urls中写的时候一般最后加上/

url(r‘^index/‘, views.index),

视图函数添加默认参数

def year_month_books(request, year=‘10‘):
        return HttpResponse(year)

Django-url配置(分组)

上一篇:[PHP] 查找使用的哪个配置文件php.ini


下一篇:.Net Core CLR GC的浅度分析