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是要匹配的模式.

  • 相关阅读:
    快速读取数字
    std:ios:sync_with_stdio (false)以及局限性
    差分,差分数组
    归并排序
    2020-07-06日报博客
    OAuth2-授权码模式 登录流程
    OAuth2 简介
    SpringSecurity连接数据库
    SpringSecurity中的授权
    SpringSecurity 入门
  • 原文地址:https://www.cnblogs.com/yaraning/p/10311371.html
Copyright © 2011-2022 走看看