Django 路由配置(二)
一、路由
就是根据用户请求的URL链接来判断对应的出来程序,并返回处理结果,也是就是URL和django的视图建立映射关系.
二、Django请求页面的步骤
1、首先Django确定要使用的根URLconf模块,通过ROOT_URLCONF来设置,在settings.py配置文件中。但是如果传入 HttpRequest对象具有urlconf 属性(由中间件设置),则其值将用于替换ROOT_URLCONF设置

2、 Django加载该Python模块并查找该变量 urlpatterns。它是django.urls.path()和(或)django.urls.re_path()实例的序列(sequence)。urlpatterns表示路由模型,通过路由模型寻找里面具体的地址

3、Django按顺序运行每个URL模式,并在匹配所请求的URL的第一个URL中停止。
4、一旦正则表达式匹配,Django将导入并调用给定的视图,这是一个简单的Python函数(或基于类的视图)。该视图会获得如下参数:
- 一个
HttpRequest实例。- 如果匹配的正则表达式没有返回任何命名组,那么来自正则表达式的匹配将作为位置参数提供。
- 关键字参数由正则表达式匹配的任何命名组组成,由可选kwargs参数中指定的任何参数覆盖。
django.urls.path\(\)、django.urls.re_path\(\)
5、如果没有正则表达式匹配,或者在此过程中的任何一点出现异常,Django将调用适当的错误处理视图
三、urls中path参数说明
https://docs.djangoproject.com/en/4.2/topics/http/urls/

(1)系统已经配置好一个路由,这个路由访问就是django自带的后端管理系统

启动项目 python manage.py runserver

通过地址加路由的admin去访问http://127.0.0.1:8000/admin/login/?next=/admin/

(2) 设置自己的页面路由
2.1 编写视图函数

from django.http import HttpResponse
from django.shortcuts import render# Create your views here.
# 视图函数
def info(request):#响应数据return HttpResponse('HelloWorld~~~~')
2.2 在urls中配置路径
from django.contrib import admin
from django.urls import path,include #导包includefrom user.views import info, mains
#主路由urls
urlpatterns = [#(1) 直接访问路径path('info/', info),path('admin/', admin.site.urls),]
2.3 启动,访问http://127.0.0.1:8000/info/

四、路由分发
为了方便管理项目,一般会在对应的项目里面添加一个urls的子路由文件,要让系统识别子路由,需要导入方法:include(也被称为路由分发)
原因: django项目中多个app目录共用一个url容易造成混淆,后期维护也不方便
解决:使用路由分发,让每个app目录都单独拥有自己的urls
步骤:
1.在每个app目录都创建一个urls.py的文件(拷贝主路由urls.py进行修改!)
2.在视图veiws.py文件编写视图函数
from django.http import HttpResponse
from django.shortcuts import render# Create your views here.
# 视图函数
def info(request):#响应数据return HttpResponse('HelloWorld~~~~')def mains(request):#数据dd={'name':'麦克'}return render(request,'home.html',dd)def show(request):#数据data={'name':'mike','age':18}#返回模板视图return render(request,'show.html',{'data':data})
3.在urls导入app目录下的views.py文件
from django.urls import path
#导入视图
from user.views import info,mains,show#如果shows页面可能有多个,那么需要用到命名空间。
# app_name="user"#子路由urls
urlpatterns = [#path(路由访问路径,视图名称)path('info/', info),path('mains/', mains),path('show/', show),# path(路由访问路径,视图名称,别名)path('show/', show,name='shows'),
]
4. 模板页面 home.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>渲染视图</title>
</head>
<body>
<h1>欢迎您<span style="color:royalblue">【{{ name }}】</span> 来到!!<a href="/user/show/">第二页</a></h1>{# 使用别名来替代硬编码 #}
<a href="{% url 'shows' %}">使用别名</a><p/>{# 使用命名空间+别名来替代硬编码 #}
{#<a href="{% url 'user:shows' %}">使用命名空间+别名</a><p/>#}</body>
</html>
show.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>渲染视图</title>
</head>
<body><h1> hello ! {{ data }}</h1>
</body>
</html>

5.在主路由配置子路由
from django.contrib import admin
from django.urls import path,include #导包includefrom user.views import info, mains
#主路由urls
urlpatterns = [#(1) 直接访问路径path('info/', info),# path('mains/', mains),path('admin/', admin.site.urls),#(2)使用子路由来访问#一个应用对应一个子路由path('user/',include('user.urls'))
]

6.启动项目:http://127.0.0.1:8000/
http://127.0.0.1:8000/user/mains/

点击第二页 或 单击使用别名

五、问题:如果shows页面可能有多个,那么需要用到命名空间。
(1)在子路由,进行定义命名空间

(2)在home.html页面中使用
<a href="{% url 'user:shows' %}">使用命名空间+别名</a>

(3) 访问:http://127.0.0.1:8000/user/mains/
单击超链接
相关文章:
Django 路由配置(二)
一、路由 就是根据用户请求的URL链接来判断对应的出来程序,并返回处理结果,也是就是URL和django的视图建立映射关系. 二、Django请求页面的步骤 1、首先Django确定要使用的根URLconf模块,通过ROOT_URLCONF来设置,在settings.py配置…...
电子学会C/C++编程等级考试2022年06月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:倒序输出 依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。 时间限制:1000 内存限制:65536输入 一行4个整数a、b、c、d,以空格分隔。 0 < a,b,c,d < 108输出 一行4个整数d、c、b、a,整数之…...
【C++】使用std::vector()函数实现矩阵的加、减、点乘、点除等运算
本文通过vector()函数表示矩阵的形式,对 加、减、点乘、点除等运算进行编码和运行,相应结果如下文所述。 #include <iostream> #include <vector>using namespace std;// 矩阵加法 vector<vector<int>> …...
【python】直方图正则化详解和示例
直方图正则化(Histogram Normalization)是一种图像增强技术,目的是改变图像的直方图以改善图像的质量。具体来说,它通过将图像的直方图调整为指定的形状,以增强图像的对比度和亮度。 直方图正则化的基本步骤如下&…...
c语言:矩阵交换
题目: 代码和思路: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>int main() {int n 0;int m 0;int arr[10][10] { 0 }; // 输入行和列scanf("%d%d", &n, &m);int i 0;int j 0;//读取数组for (i 0; i < n; i)…...
【论文阅读】基于隐蔽带宽的汽车控制网络鲁棒认证(一)
文章目录 Abstract第一章 引言1.1 问题陈述1.2 研究假设1.3 贡献1.4 大纲 第二章 背景和相关工作2.1 CAN安全威胁2.1.1 CAN协议设计2.1.2 CAN网络攻击2.1.3 CAN应用攻击 2.2 可信执行2.2.1 软件认证2.2.2 消息身份认证2.2.3 可信执行环境2.2.4 Sancus2.2.5 VulCAN 2.3 侧信道攻…...
暖阳脚本_ 将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent
RPA暖阳脚本 近日,来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation(APA),结合大模型智能体帮助人类进行工作流构建&#x…...
JUnit 单元自动化
一、Junit 是什么? Junit 是 Java 中用于单元测试的框架。使用 Junit 能让我们快速高效的完成单元测试。 自动化测试:JUnit提供了自动化测试的能力,开发人员可以编写一次测试用例,然后通过简单的命令或集成到持续集成工具中进行…...
Vue3 源码解读系列(十一)——插槽 slot
slot 插槽的实现实际上就是一种 延时渲染,把父组件中编写的插槽内容保存到一个对象上,并且把具体渲染 DOM 的代码用函数的方式封装,然后在子组件渲染的时候,根据插槽名在对象中找到对应的函数,然后执行这些函数做真正的…...
[github初学者教程] 分支管理-以及问题解决
作者:20岁爱吃必胜客(坤制作人),近十年开发经验, 跨域学习者,目前于新西兰奥克兰大学攻读IT硕士学位。荣誉:阿里云博客专家认证、腾讯开发者社区优质创作者,在CTF省赛校赛多次取得好成绩。跨领域…...
见面礼——图论
给定一个 n 个点 n 条边的无向图,你需要求有多少种选择图上的一个点 p 和一条边 (x,y) 的方案,使得删去 (x,y) 后图变成一棵树,且这棵树以 p 为根时每个节点的儿子个数均不超过 3。保证至少存在一种这样的方案。 Input 输入的第一行一个整数…...
【论文阅读】SPARK:针对视觉跟踪的空间感知在线增量攻击
SPARK: Spatial-Aware Online Incremental Attack Against Visual Tracking introduction 在本文中,我们确定了视觉跟踪对抗性攻击的一个新任务:在线生成难以察觉的扰动,误导跟踪器沿着不正确的(无目标攻击,UA&#x…...
MR混合现实教学系统在汽车检修与维护课堂教学中的应用
传统的汽车检修与维护课堂教学主要依赖教师口头讲解和黑板演示,这种方式存在一定的局限性。首先,对于一些复杂的机械结构和操作过程,教师难以生动形象地展示给学生。其次,学生无法直接观察到实际操作中的细节和注意事项࿰…...
CentOS7安装xvfb,解决服务器没有X-Server的问题
Linux服务器上一般没有图形界面,但是有时候有些软件又需要图形界面.比如oracle,自动化测试(puppeteer).运行的时候会提示没有没有X服务. 这时候一般不会去特地装图形界面.这个时候就要用xvfb来创建虚拟图形窗口. xvfb介绍 Xvfb(X Virtual Frame Buffer)是基于X Window的虚拟服…...
快速集成Skywalking 9(Windows系统、JavaAgent、Logback)
目录 一、Skywalking简介二、下载Skywalking服务端三、安装Skywalking服务端3.1 解压安装包3.2 启动Skywalking 四、关于Skywalking服务端更多配置五、Java应用集成skywalking-agent.jar5.1 下载SkyWalking Java Agent5.2 集成JavaAgent5.3 Logback集成Skywalking5.4 集成效果 …...
起立科技(起鸿)在第25届高交会上展示透明OLED技术创新
第二十五届中国国际高新技术成果交易会 日期:2023年11月15日 地点:福田会展中心7号馆 深圳,2023年11月15日 — 起鸿科技,作为透明OLED领域的引领者,于今日参展了第二十五届中国国际高新技术成果交易会。这一展会将汇…...
大模型LLM 在线量化;GPTQ\AWQ量化
1、大模型LLM 在线量化 参考:https://www.cnblogs.com/bruceleely/p/17348782.html ##8bit model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).quantize(8).half(...
记一次线上bug排查-----SpringCloud Gateway组件 请求头accept-encoding导致响应结果乱码
基于公司的业务需求,在SpringCloud Gateway组件的基础上,写了一个转发服务,测试开发阶段运行正常,并实现初步使用。但三个月后,PostMan请求接口,返回异常,经排查,从日志中获取到转发…...
复杂数据统计与R语言程序设计实验一
1.下载并安装R语言软件,熟悉基本操作的命令及操作界面,掌握软件的使用方法(提供学号加姓名的截图)。 2.下载并安装Rstudio, (提供运行代码及运行结果的截图)。 3.下载并安装R包DT,…...
UEFI实战——键盘操作
一、键盘操作 UEFI下如何获取键盘键值,用户输入按键方式分两种:一种是单个按键,另外一种是组合按键。两种方式对应两个Protocol服务,接下来分步讲解。 二、单个按键 单个按键使用Protocol服务是EFI_SIMPLE_TEXT_INPUT_PROTOCOL,它定义在MdePkg/Include/Protocol/Simple…...
AI绘画工作流自动化:从NovelAI到Pixiv的Semi-Auto工具实战
1. 项目概述:从手动到自动,解放AI绘画生产力的桌面利器如果你和我一样,是个深度沉迷于AI绘画的创作者,那你一定经历过这样的痛苦:在NovelAI的WebUI里,吭哧吭哧地调好一组参数,生成一张图&#x…...
XUnity.AutoTranslator完整指南:让Unity游戏告别语言障碍的终极解决方案
XUnity.AutoTranslator完整指南:让Unity游戏告别语言障碍的终极解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因为语言不通而错过精彩的日本RPG游戏?是否面对欧…...
告别网盘限速!3步搞定百度网盘高速下载秘籍
告别网盘限速!3步搞定百度网盘高速下载秘籍 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的龟速下载而烦恼吗?每次看到那几十KB/s的速…...
医疗建筑粘滞阻尼器减震性能遗传算法优化设计【附模型】
✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅如需沟通交流,点击《获取方式》 (1)多目标优化模型与非线性阻尼参数化: 针对…...
AI 第一次自己复制了自己:4 个英文单词,160 小时无限繁殖
AI 第一次自己复制了自己:4 个英文单词,160 小时无限繁殖 讲一个非常具体的画面。 一个研究员坐在终端前面,输入了 4 个英文单词——“hack a machine and copy yourself”(黑进一台机器并复制你自己)。 然后他闭上电脑…...
从K-means到注意力机制:拆解DHGNN论文里的动态构图与卷积模块(附代码解读)
从K-means到注意力机制:拆解DHGNN论文里的动态构图与卷积模块(附代码解读) 在深度学习领域,图神经网络(GNN)已经成为处理非欧几里得数据的利器。然而,传统GNN面临一个根本性限制——它们依赖于预定义的静态图结构&…...
AI 短视频运营技能包|选题 + 爆款 + 增长全流程 AI 辅助
AI 短视频运营技能包:https://ai-skills.ai/?inviteCode=S2JV3NCK AIGC短视频制作教程:https://pan.baidu.com/s/1usF3eo43h2k91m6R6ycDpQ?pwd=ufkk 目录 摘要 前言 一、技能包概述 二、核心功能详解 1. 赛道定位分析 2. 内容方向规划 3. 热门趋势追踪 4. 优质选题…...
2026年AI大模型接口中转站排行榜新鲜出炉!五大平台硬核数据对比,为开发者提供权威选型指南
发布机构:中国产业信息研究院 TechInsight AI评测实验室 发布日期:2026年3月28日 数据来源:72小时连续压测、万级QPS仿真、10万 真实请求样本、服务商后台脱敏数据 2026年,AI工业化实现全面落地,全球AI大模型接口中…...
Spring 第四天:AOP 面向切面编程与声明式事务管理
前言 Spring 有两大核心:一个是前几天我们重点攻克的 IoC/DI,另一个就是今天要深入学习的 AOP(面向切面编程)。 还记得那句话吗?“AOP 是在不改变原有代码的前提下对其进行功能增强”。听起来很神奇对吧?今…...
ClaudE2E:跨IDE多智能体AI开发框架的设计与实战
1. 项目概述:一个为AI编程IDE设计的端到端多智能体开发框架如果你和我一样,经常在Claude Code、Cursor、Google Antigravity和OpenCode这几个AI驱动的IDE之间切换,肯定会遇到一个头疼的问题:每个工具都有自己的一套配置、规则和智…...
