(11.13 知识总结(路由层)

news2024/10/7 18:25:08

  一、路由层

   1.1路由匹配

        1.1.1 什么是路由?
  • 路由可以看成是跟在 ip 和 port 之后的地址
          1.1.2  url( ) 方法

# 示例
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/', views.login_func),
    url(r'^register/$', views.register_func),
]

  • url( ) 方法的第一个参数其实是正则表达式, 一旦第一个参数匹配到了内容直接结束匹配, 并调用对应的视图函数

    注:不需要在路由前面添加反斜杠 "/", 因为每个 url 自带
           建议在正则表达式之前添加原生字符 "r"
           每个由正则匹配成功并通过分组捕获的参数都会作为一个普通的Python字符串传递给视图函数
           如果路由结尾没有"/", 在第一次正则匹配机制没有匹配到想要的内容时, 会在匹配字符后加一个"/", 然后Django内部重定向在匹配一次
 

  2、分组命名匹配

    1.2.1 无名分组
  • rl( ) 方法中第一个参数正则表达式分组 : 给正则表达式前后加一个小括号

  • 会将括号内正则表达式匹配到的内容当做位置参数传递给后边的视图函数

  • get请求的第一种方式:
    http://127.0.0.1:8000/test/?a=1&b=2
    get请求的第二种方式:
    http://127.0.0.1:8000/test/123/11

   1.2.2 有名分组
  • 将正则表达式分组捕获到的内容定义一个名字
  • 会将括号内正则表达式匹配到的内容当做关键字参数传递给后面的视图函数
  •  

    url(r'^login/$', views.login_func)

    # 有名分组
    url(r'^login/(?P<id>\d+)/$', views.login_func)
    # 视图函数
    def login_func(request,**kwargs):
        print(kwargs)
        return Httpresponse(args)
     

1.2.3  有名和无名是否能够混合使用
  • 不能结合使用

url(r'^login/(\d+)/(?P<id>\d+)/$', views.login_func)
# 官方说不能混着用, 混着用只能取到有名分组捕获的值
# 只要不混着用,有名分组和无名分组支持多个相同类型的传参

  • 可以单个重复使用

url(r'^login/(\d+)/(\d+)/$', views.login_func)
url(r'^login/(?P<id>\d+)/(?P<id>\d+)/$', views.login_func)

3、 反向解析

1.3.1   .什么是反向解析?
  • 反向解析就是通过一些方法得到一个结果, 该结果可以直接访问对应的 url 并触发视图函数
1.3.2  反向解析的作用
  • 在使用一个 Django 项目时, 我们经常需要将一个 url 嵌入到生成的内容中去, 如果将这些 url 固定写死, 那么可扩展性很差, 并且一定程度上会产生过期的 url
  • 使用反向解析就是当路由频繁变化的时候, 让 html 界面上的连接地址做到动态解析
1.3.3  如何使用反向解析
  • 给路由与视图函数对应关系添加一个别名 (名字由自己指定, 只要不冲突即可)
  • # 路由层
    url(r'^login/$', views.login_func,name='login_name')
     
1.3.4  无名有名分组反向解析
       1.无名分组反向解析url(r'^v1/v2/v3/home/(\d+)/(\d+)/$', views.home, name='home')

# 后端解析
res=reverse('home', args=(123, 11)) # /v1/v2/v3/home/1
print(res)

# 前端解析
<a href="{% url 'home' 1 123 %}">点我看美女</a>

4、  路由分发

Django的全局路由文件是urls.py这个文件
随着项目的复杂程度越来越来越大,路由肯定也是越来越多,路由文件就会增加很多的路由地址,就会导致路由文件很混乱,不好管理,也不够清晰,我们可以把总路由文件进行拆分,拆分到各个应用下面去,每一个应用都可以有自己的路由文件

# 路由分发之后,总路由文件就不在作为地址匹配了,只是为了分发而已
# 路由的分发
# url(r'^app01/', include(app01_urls)),
# url(r'^app02/', include(app02_urls)),
# 第二种方式
url(r'^app01/', include('app01.urls')),
url(r'^app02/', include('app02.urls')),

"""分发的路由第一个参数最后一个不要加 $ """

5. 名称空间(了解)

    1.5.1 为什么使用名称空间

       当多个应用设置了相同的别名, 在反向解析的时候前面路由会被后面的路由覆盖, 那么就无法触发前面路由对应的视图函数, 正常情况下, 反向解析是无法自动识别前缀的, 为了避免这种错误, 引入了名称空间.

6.伪静态的概念(了解)

  • 目的是为了更好的被搜索引擎收录以及seo查询几率而通过一定的规则, 把动态页面的地址转换成以 htm 或 html 结尾的地址, 看起来是静态的, 实际是依然是动态页面
  • 比如博客园的文章地址结尾就是 .html, 但我们是可以对文章内容进行修改的

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

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

相关文章

计算机毕业设计选题推荐-课程学习微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Jmeter 性能 —— 负载阶梯场景!

1、安装阶梯测试的第三方插件->搜jpgc 选项-JMeter Plugins Manager -搜jpgc 空格&#xff0c;然后安装 2、脚本-线程组选jpgc Stepping Thread Group 最终并发数为100&#xff0c;并发数从0开始&#xff0c;5秒内增加10个并发数&#xff0c;增加10个后持续30s&#xff0c;…

基于RK3399的室内健身魔镜方案

I 方案背景 一、健身魔镜的兴起 2020年疫情席卷全球&#xff0c;宅家是防疫的措施之一&#xff0c;因而宅家运动火爆&#xff0c;随之而来的宅家运动器材也风靡起来&#xff0c;其中包含既有颜值又具有多种功能的健身魔镜。 Ⅱ 方案介绍 一、健身魔镜的方案介绍 …

文件上传 [SUCTF 2019]CheckIn1

打开题目 我们用cmd curl --head url 查看网站使用的是什么服务器 此题用的是openresty&#xff0c;OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台 我们上传php&#xff0c;phtml的一句话木马都显示不合法 那我们试试传a.jpg的一句话木马 显示我们一句话木马内容里面…

[C++ 从入门到精通] 12.拷贝构造函数

&#x1f4e2;博客主页&#xff1a;https://loewen.blog.csdn.net&#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;本文由 丶布布原创&#xff0c;首发于 CSDN&#xff0c;转载注明出处&#x1f649;&#x1f4e2;现…

22.能被7整除,并且求和。

#include<stdio.h>int main(){int i ,sum0;printf("1-1000能被7整除的数字有&#xff1a;\n");for(i1;i<1000;i){if(i%70){printf("%d ",i);sumsumi;} }printf("\n");printf("能被7整除的数字的和是&#xff1a;%d ",sum);re…

stm32 WIFI模块_8266使用

使用以上配置可以正常回应&#xff0c;其中无论勾选或者不勾选DTR/RTS都可以得到正常回应 ATCWMODE?表示查询当前WiFi状态是处于热点模式&#xff08;AP模式&#xff09;或者是连接其他WiFi的那个模式。通过图片看出这个符号不能省略。 设置AP热点命令格式&#xff1a;ATCWSAP…

手写线性表C++ vector

目录 一、vector基本概念 1.1、构造函数 1.2、析构函数 1.3、插入元素 1.4、删除元素 1.5、重载运算符 二、完整代码 一、vector基本概念 C中的vector是一种动态数组&#xff0c;它可以根据需要自动调整大小。vector是C标准模板库&#xff08;STL&#xff09;中的一个容…

通信原理板块——线性分组码之汉明码

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、汉明码 (1)常见概念 代数码&…

2756基于微信小程序的图书商城系统

摘要 本文将详细介绍基于微信小程序的图书商城系统的设计和实现。该系统包括服务器端和客户端两部分&#xff0c;能够满足管理员和普通用户的需求。通过对用户需求和功能的分析&#xff0c;本文将详细阐述系统设计的关键环节&#xff0c;包括数据库设计和界面设计。最后&#…

C语言ZZULIOJ1148:组合三位数之一

题目描述 把1、2、3、4、5、6、7、8、9组合成3个3位数&#xff0c;要求每个数字仅使用一次&#xff0c;使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。 输入:无 输出:按从小到大的顺序输出这三个三位数&#xff0c;由空格隔开。输出占一行。 提示 若一个数能表…

select在标准输出和套接字上进行监控

selectServerInTCPIPbook.c的内容如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #include <sys/time.h> #include <sys/…

教育局档案室智慧档案库房建设方案

教育局档案室智慧档案库房建设是指教育局为了更好地保存和管理学校、教师、学生等相关档案资料&#xff0c;以及保证这些档案资料的安全性、可靠性和完整性&#xff0c;而建设的一个专门的存储、管理和保护档案资料的场所。 专久智能提供的教育局档案库房建设方案从以下几个方面…

高密度统一存储在影视后期剪辑媒资应用中的优势

影视媒体行业是存储技术发展的重要推动力。Infortrend一直专注于存储的研发&#xff0c; EonStor GS 横向扩展统一存储是适合影视应用的解决方案&#xff0c;高密度机型性能卓越&#xff0c;扩展性高&#xff0c;数据保护技术安全可靠。非常具有性价比&#xff0c;在保证性能和…

msvcp71.dll,msvcr71.dll丢失的最简单的解决方法

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是MSVCR71.dll缺失。这个问题可能会导致某些应用程序无法正常运行&#xff0c;给用户带来困扰。本文将介绍5个修复MSVCR71.dll缺失的方案&#xff0c;帮助用户解决这一问题。 一、重新安装相关…

U盘怎么加密?U盘数据该怎么加密?

在使用U盘的过程中&#xff0c;我们会将很多重要数据存放在电脑中&#xff0c;但为了保护文件的安全性&#xff0c;我们需要使用加密来进行保护。那么&#xff0c;U盘数据该怎么加密呢&#xff1f; U盘数据加密方法 想要将普通U盘变成加密U盘&#xff0c;我们需要使用专业的U盘…

如何防止听力下降?

听力受损是不可逆的&#xff0c;一旦听力下降了是无法恢复的&#xff0c;所以当我们出现听力障碍的时候&#xff0c;我们更应该注意我们的耳朵&#xff0c;想想如何能保护我们的残余听力&#xff01; 今天来告诉大家&#xff0c;哪些事是有易于听力的&#xff0c;一起来看看吧…

企业数据备份方案:如何选择适合企业的备份方法?

企事业单位通常配备文件服务器以存储涉及单位无形资产和商业机密的重要数据文件。尽管许多文件服务器配备了Raid以防止数据丢失风险&#xff0c;但员工恶意访问或黑客入侵仍可能导致数据的删除、恶意修改或加密。因此&#xff0c;为维护数据安全&#xff0c;企业需要及时备份操…

nodejs express vue uniapp电影购票系统源码

开发技术&#xff1a; node.js&#xff0c;vscode&#xff0c;HBuilder X express vue elementui uniapp 功能介绍&#xff1a; 用户端&#xff1a; 登录注册 首页显示搜索电影&#xff0c;轮播图&#xff0c;电影分类&#xff0c;最近上架电影 点击电影进入电影详情&am…

基于ssm+vue协同过滤算法的电影推荐系统

基于ssmvue协同过滤算法的电影推荐系统 摘要 电影推荐系统在信息技术发展的背景下日益成为研究的焦点&#xff0c;本研究基于SSM&#xff08;Spring SpringMVC MyBatis&#xff09;框架与Vue.js技术&#xff0c;以协同过滤算法为核心&#xff0c;旨在构建一种高效、准确的电影…