zoukankan      html  css  js  c++  java
  • Django路由(url)

    1.基本配置

    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),
    ]

    2.分组命名匹配

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

      实例

    #url.py
     url(r'^date/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',views.date)
    #views.py
    def date(request,year,month):
        print("year:",year)
        print("month:",month)
        return HttpResponse('OJBK')

    3.反向解析URL(本质上就是给url匹配模式起别名,然后用过别名拿到具体的URL路径)
       
         1. 怎么起别名?
          在url匹配模式中,定义name="别名"
         2. 如何使用?
              1. 在模板语言里面使用: {% url "别名" %}  --> 得到具体的URL路径
            
            2. 在视图中如何使用: from django.urls import reverse
             reverse("别名")  --> 得到具体的URL路径
            
         3. 如何传参数?
            1. 模板语言中:{% url "别名" 2018 "nb" %}
             
            2. 视图函数中
             传位置参数:reverse("别名", args=(2018, "nb"))
        
             传关键字参数:reverse("别名" kwargs={"year": 2018, "title": "nb"})
       4. namespace
            为了防止不同的app下面的url匹配模式有重复的别名
        
       

  • 相关阅读:
    搭建yum服务器
    linux 网卡
    yum安装包另存
    CentOS下VMware用桥接模式,静态ip上外网
    linux挂载硬盘以及卸载硬盘
    Word2010如何编辑好了直接发布csdn博文?
    【更新】用word文档来发布到csdn等博客上边免去一张张上传图片的烦恼
    在word上写博客直接发到CSDN
    word上传博客教程
    Word写博客-使用Word2013发布博文到博客园
  • 原文地址:https://www.cnblogs.com/wm0217/p/10707205.html
Copyright © 2011-2022 走看看