zoukankan      html  css  js  c++  java
  • django 2.0 path

    一  2.几 和1.几 的区别

    1. django2.几的re_path和1.几的url一样
    2. 2.几多了一个path,不支持正则

    二  2.0 path

    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>/', views.article_detail),  
      # path才支持,re_path不支持
      path('order/<int:year>',views.order),
    ]

    基本规则:

    • 使用时导入  from django.urls import path
    • 不支支持正则 , 精准匹配
    • 使用尖括号 <> 从url中捕获值
    • 捕获值中可以包含一个转换器类型,比如使用 <int:year> 捕获一个整数变量

    path转换器

    Django默认有5个转换器:

    • str ,匹配除路径分割符(/)之外的非空字符串,这是默认形式
    • int ,匹配正整数,包含0
    • slug, 匹配字母、数字以及斜杠、下划线组成的字符串
    • uuid,匹配格式化的uuid,如:075194d3-6885-417e-a8a8-6c931e272f00
    • path,匹配任何非空字符串,包含路径分隔符(/)(不能用?)

    自定义转换器

    1 写一个类:(使用时候直接复制过来 改regex即可)
    class Test:
        regex = '[0-9]{4}'
        def to_python(self, value): 
            # 写一堆处理
            value=value+'aaa'
            return value
        def to_url(self, value):
            return '%04d' % value  
    2 from django.urls import register_converter
    3 register_converter(Test,'ttt'4 path('index/<ttt:year>', views.index,name='index'),

    要求:

    • regex 类属性,字符串类型
    • to_python(self, value) 方法,value是由类属性 regex 所匹配到的字符串,返回具体的Python变量值,以供Django传递到对应的视图函数中。
    • to_url(self, value) 方法,和 to_python 相反,value是一个具体的Python变量值,返回其字符串,通常用于url反向解析使用。
  • 相关阅读:
    yb课堂之自定义异常和配置 《五》
    文件包含总结--2018自我整理
    文件上传总结--2018自我整理
    i春秋 “百度杯”CTF比赛 十月场 web题 Backdoor
    bugku web题INSERT INTO注入
    SCTF2018-Event easiest web
    初识thinkphp(5)
    “百度杯”CTF比赛 九月场 YeserCMS
    初识thinkphp(4)
    0MQ是会阻塞的,不要字面上看到队列就等同非阻塞。
  • 原文地址:https://www.cnblogs.com/kingyanan/p/9606701.html
Copyright © 2011-2022 走看看