1.1.9创建应用

news2025/1/11 18:39:52

1.在全局配置文件下找到urls.py进行路由配置

配置路由要指明哪个应用,和写好模块导入的函数

2.找到路由要启动的应用,在应用里找到视图函数进行设计

path(‘url模式/“,视图函数)

注意第五部没有/

1.1.110路由匹配模式1:精确字符串格式

假设我们有一个 Django 应用,并且希望在访问 /about/ URL 时调用一个名为 about_view 的视图函数。可以在 urls.py 文件中定义如下的路由规则:

# urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('about/', views.about_view, name='about'),
]

详细解释

  1. path 函数:

    • path 函数用于定义 URL 路由。它接受多个参数:
      • 第一个参数是 URL 模式,这里是 'about/',表示精确匹配 /about/
      • 第二个参数是视图函数,这里是 views.about_view,表示当 URL 匹配 'about/' 时,调用 about_view 函数。
      • 第三个参数是可选的 name 参数,用于为这个 URL 路由命名,便于在模板或其他地方引用。
  2. 精确字符串格式:

    • 在这个例子中,URL 模式 'about/' 是一个精确字符串格式。这意味着只有当请求的 URL 完全匹配 /about/ 时,才会调用 about_view 视图函数。
    • 例如,访问 http://example.com/about/ 会匹配这个路由规则,而访问 http://example.com/about(缺少尾部斜杠)或 http://example.com/about/me 则不会匹配。

视图函数示例

为了完整性,这里提供一个简单的视图函数示例:

# views.py

from django.http import HttpResponse

def about_view(request):
    return HttpResponse("This is the about page.")

 1.1.111路由匹配模式2:路径转换器格式

 

 

1.1.12路由匹配模式3:正则表达式

使用 re_path 和正则表达式匹配 URL

re_path 函数与 path 函数类似,但它允许你使用正则表达式来匹配 URL 模式。

示例

以下是一些使用正则表达式的 URL 模式示例:

from django.urls import re_path
from . import views

urlpatterns = [
    re_path(r'^articles/(?P<year>[0-9]{4})/$', views.article_year),
    re_path(r'^users/(?P<username>\w{1,30})/$', views.user_profile),
    re_path(r'^files/(?P<file_path>.+)/$', views.file_detail),
    re_path(r'^items/(?P<item_id>[0-9a-fA-F-]{36})/$', views.item_detail),
]

在这些示例中:

  • r'^articles/(?P<year>[0-9]{4})/$' 匹配一个四位数字的年份,并将其作为 year 参数传递给视图 article_year
  • r'^users/(?P<username>\w{1,30})/$' 匹配一个长度为 1 到 30 的字母数字用户名,并将其作为 username 参数传递给视图 user_profile
  • r'^files/(?P<file_path>.+)/$' 匹配一个包含任意字符的文件路径,并将其作为 file_path 参数传递给视图 file_detail
  • r'^items/(?P<item_id>[0-9a-fA-F-]{36})/$' 匹配一个 UUID,并将其作为 item_id 参数传递给视图 item_detail

正则表达式语法

  • ^ 表示字符串的开始。
  • $ 表示字符串的结束。
  • . 匹配任意单个字符。
  • + 表示前面的字符或表达式至少出现一次。
  • {n} 表示前面的字符或表达式出现恰好 n 次。
  • \d 匹配任意数字字符,相当于 [0-9]
  • \w 匹配任意字母数字字符,相当于 [a-zA-Z0-9_]
  • (?P<name>pattern) 用于捕获匹配的内容并将其命名为 name,以便在视图函数中作为参数使用。

1.1.13路由嵌套匹配

使用 include 实现路由嵌套

假设你有一个主应用程序 main 和一个子应用程序 blog,你希望在 main 的 URL 配置中包含 blog 的 URL 配置。

主应用程序的 URL 配置 (main/urls.py)

首先,在主应用程序的 URL 配置文件中使用 include 函数包含子应用程序的 URL 配置:

from django.urls import path, include

urlpatterns = [
    path('blog/', include('blog.urls')),
]
子应用程序的 URL 配置 (blog/urls.py)

在子应用程序中,定义自己的 URL 配置:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('<int:post_id>/', views.detail, name='detail'),
    path('archive/', views.archive, name='archive'),
]

在这个示例中:

  • 访问 http://yourdomain.com/blog/ 会调用 blog 应用的 index 视图。
  • 访问 http://yourdomain.com/blog/1/ 会调用 blog 应用的 detail 视图,并将 post_id 参数传递给视图。
  • 访问 http://yourdomain.com/blog/archive/ 会调用 blog 应用的 archive 视图。

嵌套更深层级的路由

你可以继续嵌套更深层级的路由。例如,如果 blog 应用有一个 comments 子应用:

子应用程序的 URL 配置 (comments/urls.py)
from django.urls import path
from . import views

urlpatterns = [
    path('', views.comment_list, name='comment_list'),
    path('<int:comment_id>/', views.comment_detail, name='comment_detail'),
]
修改 blog 应用的 URL 配置以包含 comments 子应用 (blog/urls.py)
from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('<int:post_id>/', views.detail, name='detail'),
    path('archive/', views.archive, name='archive'),
    path('comments/', include('comments.urls')),
]

在这个示例中:

  • 访问 http://yourdomain.com/blog/comments/ 会调用 comments 应用的 comment_list 视图。
  • 访问 http://yourdomain.com/blog/comments/1/ 会调用 comments 应用的 comment_detail 视图,并将 comment_id 参数传递给视图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小阿轩yx-KVM+GFS 分布式存储系统构建 KVM 高可用

小阿轩yx-KVMGFS 分布式存储系统构建 KVM 高可用 案例分析 案例概述 使用 KVM 及 GlusterFS 技术&#xff0c;结合起来实现 KVM 高可用利用 GlusterFS 分布式复制卷对 KVM 虚拟机文件进行分布存储和冗余 分布式复制卷 主要用于需要冗余的情况下把一个文件存放在两个或两个…

刚起步的海外仓怎么选WMS系统,要注意什么

对于刚起步的海外仓企业来说&#xff0c;最紧要的事情就是把核心业务打磨平稳&#xff0c;形成核心竞争力&#xff0c;才能在激烈的竞争中赢得一席之地。 而要实现这个目的&#xff0c;WMS海外仓系统的引入当然是必要的一环&#xff0c;不过因为刚起步&#xff0c;业务和资源都…

AI产品经理的职责与能力:将AI技术转化为实际价值

一、AI产品经理的职责 发现和解决问题&#xff1a;AI产品经理需要具备敏锐的洞察力&#xff0c;能够发现用户需求和痛点&#xff0c;并提出相应的解决方案。传递价值给用户&#xff1a;AI产品经理需要确保产品能够满足用户的需求&#xff0c;提供价值&#xff0c;并提升用户体…

大模型之语言大模型技术

本文作为大模型综述第二篇,介绍语言大模型基本技术。 近年来,在 Transformer 架构基础上构建的预训练语言模型为自然语言处理领域带来了一系列突破式进展,成为人工智能主流技术范式。预训练语言模型采用“预训练+微调”方法,主要分为两步: 1)将模型在大规模无标注数据上…

No static resource favicon.ico.问题解决

一&#xff0c;问题 Spring Boot项目调用接口时报错 org.springframework.web.servlet.resource.NoResourceFoundException: No static resource favicon.ico. at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpReques…

餐饮卫生数字化防线:EasyCVR明厨亮灶/透明厨房/阳光厨房视频监管方案

近期有新闻报道&#xff0c;某互联网大厂办事处发生了一起大规模食物中毒事件&#xff0c;导致近60人住院。餐饮食品卫生安全直接关系到人民群众的身体健康和生命安全&#xff0c;是社会关注的焦点。 传统的监管方式往往依赖于人力巡查和抽检&#xff0c;存在效率低、覆盖面窄…

企业邮箱安全稳定吗?

企业邮箱安全稳定吗&#xff1f;企业邮箱通过GDPR等国际标准保护数据&#xff0c;采用加密技术、反垃圾邮件、身份验证等措施确保安全。服务器全球分布&#xff0c;灾难恢复和备份确保稳定。Zoho邮箱提供多种版本和注册流程&#xff0c;支持邮件协作、备份与恢复等功能。 一、…

成为一名月薪 2 万的 web 安全工程师需要掌握哪些技能?

现在 web 安全工程师比较火&#xff0c;岗位比较稀缺&#xff0c;现在除了一些大公司对学历要求严格&#xff0c;其余公司看中的大部分是能力。 有个亲戚的儿子已经工作 2 年了……当初也是因为其他的行业要求比较高&#xff0c;所以才选择的 web 安全方向。 资料免费分享给你…

“电商兴农 走进柳湖”明天赵堡准时启动,邀您一起来采摘

为了进一步推动农村电子商务普及应用&#xff0c;营造农村电商发展浓厚氛围&#xff0c;培育电商新业态、新模式&#xff0c;宣传推广崆峒农特产品&#xff0c;推动城乡生产与消费有效对接&#xff0c;拓宽农特产品销售渠道&#xff0c;释放农村消费潜能&#xff0c;挖掘乡村文…

凡图公益行|温暖新庞村:“守护童心、预防霸凌”公益活动圆满落幕!

凡图公益行|温暖新庞村&#xff1a;“守护童心、预防霸凌”公益活动圆满落幕&#xff01; 在当今社会&#xff0c;霸凌这一现象如同阴霾般笼罩在部分孩子的生活之中&#xff0c;成为了一个不容忽视的社会问题。 它不仅给受害者带来深重的身心伤害&#xff0c;还对整个社会的和…

Haption力反馈设备在核工业遥操作机器人中的应用探讨

核工业作为能源领域的重要组成部分&#xff0c;其安全性和工作效率的提升越来越受到人们的关注。在核工业环境中&#xff0c;由于存在高辐射、高风险等特性&#xff0c;传统的人工操作方式并不适用于该领域&#xff0c;因此遥操作机器人技术应运而生。Haption力反馈设备作为虚拟…

springboot报错

springboot报错&#xff1a;g.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 解决办法&#xff1a; file->settings 搜索encoding 然后选择File encodings 也可以直接找 File encodings 全部都更改整utf-8&#xff…

Midjourney咒语之风景大片极简抽象神秘特效

风景大片 Himalayas, landscape, very detailed, --ar 16:9 --style raw --v 5.1 Serene blue mountains landscape. hills, mist, morning fog, Wide-angle lens, Low ISO, EOS 5D Mark IV, --ar 16:9

Vue2中渲染功能,添加功能,删除功能,统计功能

上述是代码运行结果&#xff0c;完整代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…

防近视台灯有效果吗?家长们要注意台灯怎么选才靠谱

近年来&#xff0c;电子产品的广泛应用进一步加重了学生的用眼负担。平板电脑、智能手机和笔记本电脑成为日常学习不可或缺的一部分&#xff0c;而长时间使用这些设备无疑加剧了视力疲劳。根据权威机构的预测&#xff0c;到2050年&#xff0c;全球近视人数将达到约49.49亿人&am…

Spring Boot 动态数据源

目录 前言 前置环境 pom yml Entity Dao 枚举类 数据源 AOP Controller 启动类 演示 前言 大多数系统中&#xff0c;都需要数据库来持久化数据&#xff0c;在大多数情况下&#xff0c;一个系统只需要配置一个数据源便能够完成所有业务的查询&#xff0c;保存操作。…

Interceptor拦截器开发

因为1登录后的接口都需要token验证代码,会出现重复代码;2当前的接口不防刷,会被恶意攻击 所以在controller层增加请求拦截,如果你的token不合法,就不让你做后续的处理了 拦截器的作用是什么 作用: 1、对controller层代码的访问进行拦截,合法的请求,那此层代码就处理,反…

三好夫人是正规牌子吗?99%不知道的秘密:三好夫人竟成宠夫神器

三好夫人是正规品牌&#xff0c;是2023年在中国国家商标局注册的第30类商标。所属公司为苏州好夫人健康科技有限公司。 当下的社会&#xff0c;健康与爱情成为了现代人追求的两大宝藏。在众多养生品牌中&#xff0c;“三好夫人”如同一股清流&#xff0c;悄然间成为了许多家庭中…

【华为战报】2024年7月 HCIA-HCIP-HCIE考试,通过率100%

了解更多往期考试→点击 【考试战报】 HCIA 华为认证工程师 7月 微思 | HCIA 考试战报 HCIP 华为认证高级工程师 7月 微思 | HCIP 考试战报 HCIE 华为认证专家 7月 微思 | HCIE 考试战报 END 微思网络&#xff0c;始于2002年 专业IT认证培训22年&#xff0c;面向全国招生&a…

智能体互联网IoA架构核心思想解读

零、常用概念 智能体&#xff1a;融合了大模型能力&#xff0c;具有感知记忆、自主规划、调用工具、执行任务能力的AgentInternet of Agents &#xff08;IoA&#xff09;—— “智能体互联网”&#xff1a;Agent 之间互相发现&#xff0c;大规模连接、协作。 一、现状问题 生…