• jdango 2.x的url配置的改变


    新版本的url.py文件中,不在使用1.x的正则表达式,强制使用在程序启动的时候会提示:

    WARNINGS:
    ?: (2_0.W001) Your URL pattern '^*article/' has a route that contains '(?P<', begins with a '^', or ends with a '$'. This was likely an oversight when migrating to django.urls.path().
    

    1.x的写法

    urlpatterns = [
        url('admin/', admin.site.urls),
        url('^*article/$', include('article.urls'))
    ]
    

    2.x中如果要使用正则,则需要使用re_path方法

    from django.urls import path, include, re_path
    urlpatterns = [
        path('admin/', admin.site.urls),
        re_path('^.*article/$', include('xxx.urls'))
    ]
    
    1. 要捕获url中的一段查询字符串,除了使用正则匹配以外,现在可以使用<>,而不是原来的()
    2. 在<>中捕获的url查询字符串,可以指定类型, 比如 path('articles/<int:year>/', views.year_archive),
      就可以将articles后面的数字匹配出来,用year参数名传递给后台,默认情况下捕获的结果保存的是字符串类型,不包含 / 这个特殊字符
    3. 匹配模式的最开头不需要添加/,因为默认情况下,每个url都带一个最前面的/
     path('articles/<int:year>/<int:month>/', views.month_archive),
    /articles/2005/03/ 将匹配第三条,并调用views.month_archive(request, year=2005, month=3);
    
    

    path转换器
    django2.x中内置了路径转换器

    str:匹配任何非空字符串,但不含斜杠/,如果你没有专门指定转换器,那么这个是默认使用的;
    int:匹配0和正整数,返回一个int类型
    slug:可理解为注释、后缀、附属等概念,是url拖在最后的一部分解释性字符。该转换器匹配任何ASCII字符以及连接符和下划线,比如’ building-your-1st-django-site‘;
    uuid:匹配一个uuid格式的对象。为了防止冲突,规定必须使用破折号,所有字母必须小写,例如’075194d3-6885-417e-a8a8-6c931e272f00‘ 。返回一个UUID对象;
    path:匹配任何非空字符串,重点是可以包含路径分隔符’/‘。这个转换器可以帮助你匹配整个url而不是一段一段的url字符串。
    

    re_path

    re_path('articles/(?P<year>[0-9]{4})/', views.year_archive),
    re_path('articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/', views.month_archive),
    re_path('articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-_]+)/', 
    

    传递给视图的所有参数都是字符串类型

  • 相关阅读:
    初识ASP.net-牛腩新闻公布系统
    【React Native开发】React Native控件之RefreshControl组件具体解释(21)
    Drupal 主题的表现形式
    OAF 设置右对齐
    在页面和请求中分别使用XML Publisher生成PDF报表且自动上传至附件服务器
    在请求的参数中设置可选值列表为当前职责可访问的所有OU
    校验基于EO的VO中的字段是否发生变化
    在使用DBMS_LOB.WRITEAPPEND()追加Clob内容的时候,报数字或值异常
    OAF中下载附件之后页面失效,报过时的数据异常,浏览器后退异常
    JAVA 中CLOB与Clob有区别
  • 原文地址:https://www.cnblogs.com/cizao/p/11481881.html
Copyright © 2020-2023  润新知