zoukankan      html  css  js  c++  java
  • django-路由系统

    2.0版本写法
    from django.urls import path urlpatterns = [ path('articles/2003/', views.special_case_2003), 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), ]


    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),
        url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
        url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
    ]


    1.urlpatterns按顺序往下匹配,成功匹配不在往下继续
    2.若要从URL中捕获一个值,只需要在它周围放置一对圆括号(分组匹配)。

    2.urls.py(路由系统)
    1.正则匹配的模式
      1.分组匹配 能够在调用视图函数的时候能够传递位置参数

    urlpatterns = [
        url(r'^articles/2003/$', views.special_case_2003),
        url(r'^articles/([0-9]{4})/$', views.year_archive),
    会传给视图函数一个4位数字的位置参数


      2.分组命名匹配,能够在调用视图函数的时候能够传递关键字参数
    urlpatterns = [
        url(r'^articles/2003/$', views.special_case_2003),
        url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
    会传递给视图函数一个4为数字的关键字参数,相当于 year=



    3.include 分级路由
    请求的顺序:
    请求——>project/urls.py-->-->app/urls.py-->app/views.py
    在URL里面

    url(r'^app01/', include(app01_urls, namespace="app01"),),

    url匹配规则的别名

    1.起别名是为了增加代码的健壮性
    2 用法
      1)在views.py中如何根据别名找到url
        from django.urls import reverse
        url=reverse('别名')
      2)在模板语言中如何根据别名找到url
        {% url ‘别名’%}
      
     3。带参数的url如何反向生成?
      1.位置参数
        1)在views.py中:
          reverse('别名',args=(参数1,参数2,。。。))
        2)在模板语言中:
          {% url '别名' 参数1,参数2.。。 %}
      2.关键字参数
        1).在views.py中:
          reverse('别名',kwargs={'k1':参数1,。。。})
        2)在模板语言中:
          {% url ‘别名’ 参数1,参数2.。。%}
      
      
      4 namespace(命名空间)
        
    # 使用include语法,将其他的urls.py 包含进来
    url(r'^app01/', include(app01_urls, namespace="app01"),),
    url(r'^app02/', include(app02_urls, namespace="app02")),
    1. 位置参数
    1. 在views.py中:
    reverse("命名空间:别名", args=(参数1, 参数2, ...))
    2. 在模板语言中:
    {% url "命名空间:别名" 参数1, 参数2... %}


    2. 关键字参数
    1. 在views.py中:
    reverse("命名空间:别名", kwargs={"k1":参数1, ...})
    2. 在模板语言中:
    {% url "命名空间:别名" 参数1, 参数2... %}


    目的就是获得唯一的url
























































  • 相关阅读:
    飞思卡尔硬件 调试总结
    芯片散热器
    (028)[技术资料]et99加密狗打开函数的一个小bug
    (027)[技术资料]业余制作Windows图标
    (026)[工具软件]剪切板管理:Ditto
    (025)[系统故障]XP下禁止将串口设备识别成鼠标(转)
    (024)[工具软件]截屏录屏软件FSCapture(转)
    (023) 关于51单片机的A5指令
    (022)[工具软件]图片浏览 JPEGView
    (021)VMWare副虚拟磁盘和子虚拟磁盘id不匹配
  • 原文地址:https://www.cnblogs.com/zhaoweihang/p/9200646.html
Copyright © 2011-2022 走看看