zoukankan      html  css  js  c++  java
  • django 2.0路由配置变化

    
    

    urlpatterns变量​​的语法

    urlpatterns应该是path()和/或re_path()实例的Python列表。

    1. 首先,Django会使用根路由解析模块(root URLconf)来解析路由。 通常,这是ROOT_URLCONF设置的值,但是如果传入的HttpRequest对象具有urlconf属性(由中间件设置)那么ROOT_URLCONF的设置将被其替换。
    2. Django加载该Python模块并查找变量urlpatterns。 它应该是django.urls.path()或者django.urls.re_path()实例的Python列表。

    path 是新的方法,re_path方法和原来的url用法一致,使用正则表达式
    代码:

    from django.urls import path
    
    from . import views
    
    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),
    ]
    
     

    变化:

      不在使用url函数,转而使用path转换器

    
    

      直接在url中表示捕获的参数类型,

    
    

      提取的参数会进行类型转换,不像正则表达式中都是捕获字符串

    
    

      不以斜杠结尾则匹配不到



    • 要从URL捕获某个值,使用尖角括号。
    • 捕获的值可以选择包含一个转换器类型。 例如, 使用 <int:name> 来捕获一个整形参数。 如果没有包含转换器, 那么除了/ 字符外, 会匹配任意字符串。
    • /articles/2005/03/ 的请求将与列表中的第三个条目匹配。 Django会调用函数views.month_archive(request, year=2005, month=3)
    • /articles/2003 不会匹配到任何一个模式,因为每个模式都要求URL以斜杠结尾。

    转换器类型以下路径转换器默认可用:

    • str - 匹配除了路径分隔符'/'的任意非空字符串。 如果表达式中没有包含转换器,那么这将是默认行为。
    • int - 匹配0或任意正整数。 并作为 int 返回。
    • slug - 匹配任意的黏接字符串(slug string),这些黏接字符串是ASCII的字母或数字,词与词之间由连字符或下划线黏接组成。 例如, building-your-1st-django-site
    • uuid - 匹配一个格式化的 UUID. 为了防止多个URL映射到同一页面,必须包含多个破折号(dash),同时字母必须小写。 例如, 075194d3-6885-417e-a8a8-6c931e272f00返回一个 UUID 实例。
    • path - 匹配包含路径分隔符 '/'在内的任意非空字符串。 相对于str,这允许你匹配一个完整的URL路径,而不仅仅是URL路径的一部分。
  • 相关阅读:
    android 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/chaiming/p/9253705.html
Copyright © 2011-2022 走看看