Django2.2.X版本urls.py中Path的配置

实验环境:deepin操作系统
Django2.2.X版本urls.py中Path的配置_第1张图片

    在Django中2.X版本,就更新为path了,其实也不算是更新,叫做添加path新特性应该更合适。我也是一名学习新手,刚开始接触Django这个开源框架,在视图显示这块,卡在path和url之间。下面介绍一下自己的对urls.py中Path的配置。

 

1、文件夹中创建的项目文件,项目名称为test1 ,创建的应用为booktest

test1/
├── booktest
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       ├── 0001_initial.cpython-36.pyc
│   │       └── __init__.cpython-36.pyc
│   ├── models.py
│   ├── __pycache__
│   │   ├── admin.cpython-36.pyc
│   │   ├── __init__.cpython-36.pyc
│   │   ├── models.cpython-36.pyc
│   │   ├── urls.cpython-36.pyc
│   │   └── views.cpython-36.pyc
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── db.sqlite3
├── __init__.py
├── manage.py
└── test1
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-36.pyc
    │   ├── settings.cpython-36.pyc
    │   ├── urls.cpython-36.pyc
    │   └── wsgi.cpython-36.pyc
    ├── settings.py
    ├── urls.py
    └── wsgi.py

说明:创建test1/booktest/urls.py之后并让其包含在test1/test1/urls.py文件里,是为了方便管理url路径

2、文件:test1/test1/urls.py 配置

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^', include('booktest.urls'))
]
以上两行代码对比,可以看出,path 和 re_path 其实功能是一样的,但是其参数要求却不同。
函数 path() : 两个必须参数:route(路由)和 view(视图),两个可选参数:kwargs 和 name。

那么与旧版本的参数主要区别:
           url()中【路由参数:正则表达式】,而path()【路由参数:非正则表达式】

path()函数的四个参数含义:
1、path()参数:route
    route 是一个匹配URL的准则(类似正则表达式)。当Django响应一个请求时,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。
    这些准则不会匹配GET和POST参数或域名。例如,URLconf在处理请求https://www.example.com/myapp/时,它会尝试匹配myapp/。处理请求https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/。
2、path()参数:view
    当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个HttpRequest对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。
3、path()参数:kwargs
    任意个关键字参数可以作为一个字典传递给目标视图函数。
4、path()参数:name
    为你的URL取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个URL模式

遇上路径和转换器语法都不足以定义的URL模式,就需要使用正则表达式:也就是说 re_path() 和 path() 路由参数不同。如果需要用正则表达式来设置路由就选择re_path()

3、文件:test1/booktest/urls.py 配置

from django.urls import path,re_path
from . import views

urlpatterns = [
    re_path(r'^$', views.index,),
]

 

你可能感兴趣的:(Django,Django,2.2.X)