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匹配模式有重复的别名
        
       

  • 相关阅读:
    MySQL/MariaDB/Percona数据库升级脚本
    systemd详解
    Nginx下Redmine2.6配置
    Linux下Python获取IP地址
    浅谈Linux内存管理机制
    深入理解PHP Opcode缓存原理
    Varnish – 高性能http加速器
    问题记录
    Java 排序报错
    记录一次数据库链接不够用被drop掉的问题
  • 原文地址:https://www.cnblogs.com/wm0217/p/10707205.html
Copyright © 2011-2022 走看看