当前位置: 首页 > news >正文

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链接来判断对应的出来程序&#xff0c;并返回处理结果&#xff0c;也是就是URL和django的视图建立映射关系. 二、Django请求页面的步骤 1、首先Django确定要使用的根URLconf模块&#xff0c;通过ROOT_URLCONF来设置&#xff0c;在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&#xff08;&#xff09;函数表示矩阵的形式&#xff0c;对 加、减、点乘、点除等运算进行编码和运行&#xff0c;相应结果如下文所述。 #include <iostream> #include <vector>using namespace std;// 矩阵加法 vector<vector<int>> …...

【python】直方图正则化详解和示例

直方图正则化&#xff08;Histogram Normalization&#xff09;是一种图像增强技术&#xff0c;目的是改变图像的直方图以改善图像的质量。具体来说&#xff0c;它通过将图像的直方图调整为指定的形状&#xff0c;以增强图像的对比度和亮度。 直方图正则化的基本步骤如下&…...

c语言:矩阵交换

题目&#xff1a; 代码和思路&#xff1a; #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暖阳脚本 近日&#xff0c;来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation&#xff08;APA&#xff09;&#xff0c;结合大模型智能体帮助人类进行工作流构建&#x…...

JUnit 单元自动化

一、Junit 是什么&#xff1f; Junit 是 Java 中用于单元测试的框架。使用 Junit 能让我们快速高效的完成单元测试。 自动化测试&#xff1a;JUnit提供了自动化测试的能力&#xff0c;开发人员可以编写一次测试用例&#xff0c;然后通过简单的命令或集成到持续集成工具中进行…...

Vue3 源码解读系列(十一)——插槽 slot

slot 插槽的实现实际上就是一种 延时渲染&#xff0c;把父组件中编写的插槽内容保存到一个对象上&#xff0c;并且把具体渲染 DOM 的代码用函数的方式封装&#xff0c;然后在子组件渲染的时候&#xff0c;根据插槽名在对象中找到对应的函数&#xff0c;然后执行这些函数做真正的…...

[github初学者教程] 分支管理-以及问题解决

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于新西兰奥克兰大学攻读IT硕士学位。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。跨领域…...

见面礼——图论

给定一个 n 个点 n 条边的无向图&#xff0c;你需要求有多少种选择图上的一个点 p 和一条边 (x,y) 的方案&#xff0c;使得删去 (x,y) 后图变成一棵树&#xff0c;且这棵树以 p 为根时每个节点的儿子个数均不超过 3。保证至少存在一种这样的方案。 Input 输入的第一行一个整数…...

【论文阅读】SPARK:针对视觉跟踪的空间感知在线增量攻击

SPARK: Spatial-Aware Online Incremental Attack Against Visual Tracking introduction 在本文中&#xff0c;我们确定了视觉跟踪对抗性攻击的一个新任务&#xff1a;在线生成难以察觉的扰动&#xff0c;误导跟踪器沿着不正确的&#xff08;无目标攻击&#xff0c;UA&#x…...

MR混合现实教学系统在汽车检修与维护课堂教学中的应用

传统的汽车检修与维护课堂教学主要依赖教师口头讲解和黑板演示&#xff0c;这种方式存在一定的局限性。首先&#xff0c;对于一些复杂的机械结构和操作过程&#xff0c;教师难以生动形象地展示给学生。其次&#xff0c;学生无法直接观察到实际操作中的细节和注意事项&#xff0…...

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技术创新

第二十五届中国国际高新技术成果交易会 日期&#xff1a;2023年11月15日 地点&#xff1a;福田会展中心7号馆 深圳&#xff0c;2023年11月15日 — 起鸿科技&#xff0c;作为透明OLED领域的引领者&#xff0c;于今日参展了第二十五届中国国际高新技术成果交易会。这一展会将汇…...

大模型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导致响应结果乱码

基于公司的业务需求&#xff0c;在SpringCloud Gateway组件的基础上&#xff0c;写了一个转发服务&#xff0c;测试开发阶段运行正常&#xff0c;并实现初步使用。但三个月后&#xff0c;PostMan请求接口&#xff0c;返回异常&#xff0c;经排查&#xff0c;从日志中获取到转发…...

复杂数据统计与R语言程序设计实验一

1.下载并安装R语言软件&#xff0c;熟悉基本操作的命令及操作界面&#xff0c;掌握软件的使用方法&#xff08;提供学号加姓名的截图&#xff09;。 2.下载并安装Rstudio&#xff0c; &#xff08;提供运行代码及运行结果的截图&#xff09;。 3.下载并安装R包DT&#xff0c;…...

UEFI实战——键盘操作

一、键盘操作 UEFI下如何获取键盘键值,用户输入按键方式分两种:一种是单个按键,另外一种是组合按键。两种方式对应两个Protocol服务,接下来分步讲解。 二、单个按键 单个按键使用Protocol服务是EFI_SIMPLE_TEXT_INPUT_PROTOCOL,它定义在MdePkg/Include/Protocol/Simple…...

AI绘画工作流自动化:从NovelAI到Pixiv的Semi-Auto工具实战

1. 项目概述&#xff1a;从手动到自动&#xff0c;解放AI绘画生产力的桌面利器如果你和我一样&#xff0c;是个深度沉迷于AI绘画的创作者&#xff0c;那你一定经历过这样的痛苦&#xff1a;在NovelAI的WebUI里&#xff0c;吭哧吭哧地调好一组参数&#xff0c;生成一张图&#x…...

XUnity.AutoTranslator完整指南:让Unity游戏告别语言障碍的终极解决方案

XUnity.AutoTranslator完整指南&#xff1a;让Unity游戏告别语言障碍的终极解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因为语言不通而错过精彩的日本RPG游戏&#xff1f;是否面对欧…...

告别网盘限速!3步搞定百度网盘高速下载秘籍

告别网盘限速&#xff01;3步搞定百度网盘高速下载秘籍 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的龟速下载而烦恼吗&#xff1f;每次看到那几十KB/s的速…...

医疗建筑粘滞阻尼器减震性能遗传算法优化设计【附模型】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;多目标优化模型与非线性阻尼参数化&#xff1a; 针对…...

AI 第一次自己复制了自己:4 个英文单词,160 小时无限繁殖

AI 第一次自己复制了自己&#xff1a;4 个英文单词&#xff0c;160 小时无限繁殖 讲一个非常具体的画面。 一个研究员坐在终端前面&#xff0c;输入了 4 个英文单词——“hack a machine and copy yourself”&#xff08;黑进一台机器并复制你自己&#xff09;。 然后他闭上电脑…...

从K-means到注意力机制:拆解DHGNN论文里的动态构图与卷积模块(附代码解读)

从K-means到注意力机制&#xff1a;拆解DHGNN论文里的动态构图与卷积模块&#xff08;附代码解读&#xff09; 在深度学习领域&#xff0c;图神经网络(GNN)已经成为处理非欧几里得数据的利器。然而&#xff0c;传统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大模型接口中转站排行榜新鲜出炉!五大平台硬核数据对比,为开发者提供权威选型指南

发布机构&#xff1a;中国产业信息研究院 TechInsight AI评测实验室 发布日期&#xff1a;2026年3月28日 数据来源&#xff1a;72小时连续压测、万级QPS仿真、10万 真实请求样本、服务商后台脱敏数据 2026年&#xff0c;AI工业化实现全面落地&#xff0c;全球AI大模型接口中…...

Spring 第四天:AOP 面向切面编程与声明式事务管理

前言 Spring 有两大核心&#xff1a;一个是前几天我们重点攻克的 IoC/DI&#xff0c;另一个就是今天要深入学习的 AOP&#xff08;面向切面编程&#xff09;。 还记得那句话吗&#xff1f;“AOP 是在不改变原有代码的前提下对其进行功能增强”。听起来很神奇对吧&#xff1f;今…...

ClaudE2E:跨IDE多智能体AI开发框架的设计与实战

1. 项目概述&#xff1a;一个为AI编程IDE设计的端到端多智能体开发框架如果你和我一样&#xff0c;经常在Claude Code、Cursor、Google Antigravity和OpenCode这几个AI驱动的IDE之间切换&#xff0c;肯定会遇到一个头疼的问题&#xff1a;每个工具都有自己的一套配置、规则和智…...