zoukankan      html  css  js  c++  java
  • Django之路由

    思维导图   

    Django的路由系统

    Django的路由系统就是URL调度程序(就是一个Python模块),URL配置(URLconf)就是Django所支撑网站的目录.

    它的本质是URL模式(简单正则表达式)与Python函数(视图函数)之间的映射.

     URLconf配置

     基本格式

    from django.conf.urls import url
    
    urlpatterns = [
        # url(正则表达式,views视图,参数,别名),
    ]

    参数说明:

    • 正则表达式 : 一个正则表达式字符串
    • views视图 : 一个可调用对象,通常为一个视图函数
    • 参数 : 可选的要传递给视图函数的默认参数(字典形式)
    • 别名 : 一个可选的name参数

    示例:

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

    注意:
    Django 2.0版本中的路由系统是下面的写法(官方文档):

    from django.urls import path,re_path
    
    urlpatterns = [
        path('articles/2003/', views.special_case_2003),
        path('articles/<int:year>/', views.year_archive),
    ]

    2.0版本中re_path和1.11版本的url是一样的用法。

    正则表达式详解

    基本配置

    from django.conf.urls import url
    from app01 import views
    urlpatterns = [
        url(r'^blog/[0-9]{4}', views.year),
    ]

    url地址:

    分组命名分配

    from django.conf.urls import url
    from app01 import views
    urlpatterns = [
        url(r'^blog/([0-9]{4})', views.year),
    ]

    结果:

    所以要在视图函数中加上分组对应的参数:

    from django.shortcuts import render,HttpResponse
    
    def year(request,y):
        return HttpResponse('ok')

    上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值,并以位置参数形式传递给视图.

    在更高级的用法中,可以使用分组命名匹配的正则表达式来捕获URL中的值,并以关键字参数形式传递给视图.

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

  • 相关阅读:
    Linux系统备份与恢复
    CentOS7修改设置静态IP和DNS
    CentOS系统基础优化16条知识汇总
    CentOS英文提示修改为中文提示的方法
    CentOS修改主机名和网络信息
    CentOS 7系统查看系统版本和机器位数
    Linux下设置SSH Server设置时间链接限制
    查看Linux下系统资源占用常用命令(top、free、uptime)
    查看CentOS系统运行了多久使用uptime命令
    设计模式(七)学习----命令模式
  • 原文地址:https://www.cnblogs.com/yaraning/p/10311371.html
Copyright © 2011-2022 走看看