Django 路由分发

本文介绍了Django的静态和动态路由配置,包括urlpatterns、path和re_path的使用。同时,讲解了如何在Django后端进行跨域配置。接着,文章探讨了Django结合Vue的流程,展示了数据接口的创建和数据返回格式。最后,讨论了动态路由中的详情页面实现,以及路由分发的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 静态路由

urlpatterns属性

urlpatterns是路由文件中的一个全局变量,用来存放路由及视图函数的映射关系

用户发起的请求URL都会首先进入主控制目录下的这个urls.py文件中进行查找匹配

  1. 首先找到urls.py下的urlpatterns全局变量,这是一个路由规则实例的列表数据。
  2. 按照先后定义顺序,进行路由匹配。
  3. 找到第一个匹配项时停止匹配,执行匹配到的视图函数。
  4. 遍历完全,未发现匹配,django进行异常处理

其中urlpatterns中的每一个路由映射规则可以由pathre_path进行构造

注意Django的路由不考虑HTTP请求方式,仅根据URL进行路由;即,只要URL相同,无论POSTGET等哪种请求方式都指向同一个操作函数

path方法
path(str, view, kwargs=None, name=None)
'''
str:一个匹配对应url地址的规则字符串
view:路由对应的视图函数,并且会自动封装HttpRequest作为第一个参数给这个视图函
kwargs:视图函数的关键字参数
name:该路由的全局命名,可以让我们方便的在django项目中任意部分显示的使用,相当于为url取变量名,接下来全局使用该命名值即可;当对应url路由改变之后,结合路由反向解析使用的地方不需要更改路由
'''
re_path
re_path(regex, view, kwargs=None, name=None)
'''
regex:一个匹配对应url地址的规则字符串
view:路由对应的视图函数,并且会自动封装HttpRequest作为第一个参数给这个视图函
kwargs:视图函数的关键字参数
name:该路由的全局命名,可以让我们方便的在django项目中任意部分显示的使用,相当于为url取变量名,接下来全局使用该命名值即可;当对应url路由改变之后,结合路由反向解析使用的地方不需要更改路由
'''

需要在settings.py所在的目录下init.py中,写入以下内容

在后端进行跨域配置

指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。

所谓同源是指,域名,协议,端口均相同,只要有一个不同,就是跨域。

django后端跨域

安装django-cors-headers

pip install django-cors-headers

# pip show 模块名,  查看某个模块是否安装过
pip show django-cors-headers

在settings.py下的INSTALLED_APPS中进行配置

INSTALLED_APPS = [
    # 第三方包
    'corsheaders',  # 跨域
    'app01.apps.App01Config',
]

在settings.py下的MIDDLEWARE中配置

MIDDLEWARE = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    # 在这里进行配置跨域 , 在中间件第三行
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 注释掉csrf这一行,第五行
    # 'django.middleware.csrf.CsrfViewMiddleware',
]

在settings.py中添加变量,允许所有的 源访问

CORS_ALLOW_ALL_ORIGINS = True  # 允许所有的源进行访问

在主路由下配置app,做路由分发

from django.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值