IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django 路由定义 -> 正文阅读

[Python知识库]Django 路由定义

Django的路由定义

  1. 什么是路由?
    指url与后端Django视图之间的一一映射关系
  2. 添加和匹配规则
    1)urlpatterns列表从上到下进行匹配(路由寻址)
    2)urlpatterns列表中条目一旦匹配成功,就会终止往下匹配
    3)urlpatterns列表中条目匹配不成功,就会一直往下匹配
    4)urlpatterns列表中如果包含了子路由会在找到子路由进行匹配,子路由找不到则会在主路由继续匹配
    4)如果全部条目都匹配不成功,那么会抛出404异常(404页面)
  3. path函数
    1)用于定义路由条目
    2)第一个参数为url路径参数(字符串),路径最前面不添加/,路径最后面需要添加/
    3)第二个参数为视图函数或者类视图,如果添加的视图函数,一定不要使用()
    4)第三个参数: kwargs任意个关键字参数可以作为一个字典传递给目标视图函数
    5)第四个参数:name 你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。
    6)如果第二个参数为include,那么会继续进入到子路由中匹配,子路由的匹配规则与全局路由匹配规则一致
    7)第一个参数可以使用类型转化器
    - <类型转化器:参数名称>
    - 默认的类型转化器:int、str、slug、uuid
    - 参数名称,在调用视图时,会自动传递给视图函数,需要使用同名的参数接收
  • 主路由定义如下:
    # 主路由定义
    # from django.contrib import admin
    from django.urls import path, include, re_path
    
    # from projects.views import index, get_project
    from projects import views
    
    urlpatterns = [
        # 使用类型装换器<类型转化器:参数名称> 会匹配int类型数据作为pk参数
        path('projects/<int:pk>/', views.get_projects),
        # 使用re_path 可进行正则匹配 
        # as_view() 可以将类视图当做当前路由的对应的视图
        re_path(r'(?P<username>\w{6,20})/count/$', ListUserCountView.as_view()),
        # include(子路由) 会到projects下的urls进行查找
        path('', include('projects.urls')), # 回去找projects项目下的urls
    ]
    
    
  • 子路由定义
    
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('projects/<int:pk>/', views.ProjectsView.as_view()),
    ]
    
  1. re_path的用法
    re_path其实作用和path相似,都是匹配url路径后找到对应的视图进行处理,但是re_path使用正则进行匹配,可以理解成path的增强版 ;
    具体使用如:
    # 这里是匹配邮箱格式,匹配到则存成变量,变量名称为email(后面会在视图函数中作为入参进行获取),并调用is_email_exist视图方法
    re_path(r'(?P<email>^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$)/count/$', views.is_email_exist)
    
    # 视图中入参获取email
    def is_email_exist(self, request, email):
        print(email)
        pass
    
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:52:05  更:2022-10-31 11:55:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 4:41:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码