• Django中path()路径


    网站地址是由统一资源定位符表示的,也是就我们常说的 url。Django 中有非常强大的 path() 方法,可以动态构造出你想要的各种不同形态的 url 。

    基本写法如下:

    from django.urls import path
    
    urlpatterns = [
        # 固定地址
        path('articles/2003/', ...),
        # 可传入 int 参数
        path('articles/<int:year>/', ...),
        # 可传入 int、str 等多个参数
        path('articles/<int:year>/<str:title>/', ...),
    ]
    

    可以看出 path() 中是可以传入动态参数的,比如上面的第三个 path() 可以匹配下面的 url:

    '/articles/2020/awesome/'
    

    并且这些参数可以在视图中取得:

    def some_view(request, year, title):
        date = year
        name = title
        ...
    

    你可以给这些参数指定默认值:

    def some_view(request, year=2020, title='Django'):
        ...
    

    但是需要注意的是,GET 请求中附带的参数是不能够直接通过视图函数的参数取得的,比如下面这个地址:

    '/articles/2020/awesome/?month=4&day=22'
    

    问号后面的参数不能作为视图函数的参数,否则你会得到无情的报错。

    获取它们的方法是这样:

    def some_view(request, ...):
        ...
        # month = 4
        month = request.GET.get('month')
        # day = 22
        day = request.GET.get('day')
        ...
    

    接下来就可以愉快的使用了,很简单吧。

    顺带说一下,上面这个 url 在模板中应该这样子写:

    {% url 'parse_name' 2020 'awesome' %}?month=4&day=22
    

    总结,path() 能接受的参数一共有四种:

    • str :匹配除路径分隔符 '/' 之外的非空字符串。
    • int :匹配零或正整数。
    • slug :匹配由ASCII字母、数字、连字符、下划线字符组成的字符串。例如, building-your-1st-django-site。
    • uuid :匹配格式化的UUID,如 075194d3-6885-417e-a8a8-6c931e272f00 。
  • 相关阅读:
    MySQL数据库8(十九)外键
    MySQL数据库8(十八)用户权限管理
    HTML基本样式
    HTML5之部分新特性
    MySQL数据库8(十七)数据库的备份还原
    MySQL数据库8(十六)子查询
    MySQL数据库(十五)联合查询与连接查询
    MySQL数据库8(十四)聚合函数和运算符
    MySQL数据库8(十三)高级数据操作之select指令
    MySQL数据库8(十二)高级数据操作
  • 原文地址:https://www.cnblogs.com/Gazikel/p/16256404.html
Copyright © 2020-2023  润新知