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

Django路由层之有名分组和无名分组、反向解析、路由分发、伪静态的概念、名称空间、虚拟环境、Django1和Django2的区别

【1】无名分组

无名分组:就是把正则中小括号里噩匹配到的内容以位置参数的形式传递给视图函数

 

url(r'^test/(\d+)$',view.text)

        

get请求的第一种方式:

        http://127.0.0.1:8000/test/?a=1&b=2

get请求的第二种方式:

        http://127.0.0.1:8000/test/12/1

【2】有名分组

有名分组:就是把正则中括号里的匹配的内容以关键字参数的形式传递给视图函数

 

        

url(r'^test/(?P<year\d+>)/(?P<mon\d+>)$',view.test)

【3】有名分组和无名分组是否可以使用多次

有名分组和无名分组不要混合使用,要么全是有名分组,要么全是无名分组

 

有名分组和无名分组可以多次使用

 

有名分组合无名分组的使用有了接收参数的方法

【4】反向解析

反向解析的概念:

        反向解析就是每一个路由都可以起一个别名,通过Django提供的一些方法去解析这个别名,得到一个别名对应的路由。

 

url(r'^v1/v2/home$',view.home,name='home')
        【4.1】后端反向解析

后端反向解析就是要使用reverse()方法

 

res = reverse('home')
print(res)'''home就是别名的名字'''
        【4.2】前端反向解析

前端反向解析就是使用 {%  %}

 

<a href"{% url 'home' %}"=>点击</a>
        【4.3】有名分组和无名分组的反向解析
                【4.3.1】无名分组的反向解析
url(r'v1/v2/home/(\d+)$',view.home,name='home')# 后端解析res = reverse('home',args=(12,))    # 解析出来的地址:v1/v1/home
print(res)# 前端解析<a href="{% url 'home' 1 %}">点击</a>
                【4.3.2】有名分组的反向解析
url(r'^v1/v2/home/(?P<year>\d+)/(?P<mon>\d+)/$',view.home,name='home')# 后端反向解析res = reverse('home',kwargs={year:1,mon:2})res = reverse('home' args=(1,2))'''args和kwargs都可以接收到参数'''print(res)# 前端的反向解析<a href={% url 'home' year=21 mon=3 %}>点击</a>

【5】路由分发

        【5.1】全局路由文件(主路由文件)

Django的全局路由文件就是urls.py

        【5.2】为什么要使用路由分发?

随着Django项目的浮渣程度越来越大,路由肯定也会越来越多,总路由文件中的路由地址就会越来越多。会导致总路由文件不好关系,不够清晰。路由分发可以很好的解决这个问题

        【5.3】如何使用路由分发

路由分发:就是在每个web应用的下面都分发一个路由(子路由)

 

注意:路由分发以后,总路文件就不作为地址匹配了,只是为了分发而已

 


路由分发:需要导入include方法

       

 from django.urls import path,include

  第一种方式:

        在总路由文件中导入每个web应用的子路由文件,不同的路由文件的名字可能存在重复的可能性,可以通过起别名的方式(as)进行区分

        

 from django.urls import path,includefrom app01 import urls as app01_urlsfrom app02 import urls as app02_urls# 路由分发url(r'^app01/',include(app01_urls)),url(r'^app02/',include(app02_urls)),

        

第二种方式:

        

url(r'^app01/',include('app01.urls')),
url(r'^app02/',include('app02.urls')),'''第二种方式可以不用导入w每个web应用的路由地址'''

        

注意:分发的路由第一个参数最好不要加$

 【6】名称空间

用于解决,在反向解析时,不同应用起的别名可能一致的问题。


                

        第一种方式:就在在反向解析时就注意下别名的定义

 

        第二种方式:

        

url(r'^app01/',include('app01.urls',namespace='app01')),
url(r'^app02/',include('app02.urls',namespace='app02')),'''解析'''res = reserve('app01:login',arg=(11,22))
res = reserve('app02:login',args=(11,222))

【7】伪静态的概念

        【7.1】静态文件和动态文件

动态文件:它是根据后端的数据变化而变化,不是在html页面中固定的,

                从数据库查询出来都是动态页面

                                       

                        

静态页面:在html文件内中写死了,不会变化。例:html,css等

        【7.2】伪装的作用

为了更好的被各大搜素引擎抓到。静态页面最容易被抓住,动态页面比较难抓

 

两种方式:

seo:优化关键字被容易搜索到

sem:广告

        【7.3】如何进行伪装

在路由文件的后缀中.html就行

 

url(r'^v1/v2/test.html/$',views.test)

【8】虚拟环境

针对每一个项目,都会去配置一个解释器,原则上多个项目可以使用同一个解释器

 

针对不同的项目单独配置一个新的解释器,每一个解释器只装针对这个项目的模块

  


虚拟环境就是纯净版本的python解释器。

虚拟环境需要自己下载,是哪个python解释器的版本,下载的就是这个版本的解释器

 

无必要的话不要频繁的创建虚拟环境,过多的虚拟环境会占用资源

【9】django1和django2的区别

1、路由文件:

        django1.x中使用的是url:支持正则

        django2.x中使用的是path:不支持正则,是精准匹配(写的是什么就按什么查找)

        django2.x中还使用re_path:re_path相当于django1.x中的url

 

path:支持5种转换器

 

Django默认支持的5个转换器:

        

转化器名称转化器使用范围
str匹配除了分隔符(/)之外的非空字符串,这是默认的形式
int匹配正整数,包含0
slug匹配字母、数字以及横杠、下划线组成的字符串
uuid匹配格式化的uuid,如075194d3-6885-417e-a8a8-6c931e272f00
path匹配任何费控字符串,包含了路径分隔符(/),(不能用?)

 

1.1、自定义转换器

 


2、创建表关系:

        django1中不用指定on_delete,级联删除,级联更新

        django2中必须指定参数:on_delete:CASCADE

相关文章:

Django路由层之有名分组和无名分组、反向解析、路由分发、伪静态的概念、名称空间、虚拟环境、Django1和Django2的区别

【1】无名分组 无名分组&#xff1a;就是把正则中小括号里噩匹配到的内容以位置参数的形式传递给视图函数 url(r^test/(\d)$,view.text) get请求的第一种方式&#xff1a; http://127.0.0.1:8000/test/?a1&b2 get请求的第二种方式&#xff1a; http://127.0.0.1:8000/test…...

【nlp】2.5 人名分类器实战项目(对比RNN、LSTM、GRU模型)

人名分类器实战项目 0 项目说明1 案例介绍2 案例步骤2.1 导入必备的工具包2.2 数据预处理2.2.1 获取常用的字符数量2.2.2 国家名种类数和个数2.2.3 读数据到python环境中2.2.4 构建数据源NameClassDataset2.2.5 构建迭代器遍历数据2.3 构建RNN及其变体模型2.3.1 构建RNN模型2.3…...

海康Visionmaster-环境配置:MFC 二次开发环境配置方法

1 新建 MFC 工程&#xff0c;拷贝 DLL:VM\VisionMaster4.0.0\Development\V4.0.0 \ComControl\bin\x64 下的所有拷贝到项目工程输出目录下&#xff0c;如下图所示&#xff0c;项目的输出路径是 Dll 文件夹。 2 通过配置 C目录和链接器的方式配置 VM 环境 2.1 C目录下添加附加…...

利用EXCEL中的VBA对同一文件夹下的多个数据文件进行特定提取

Sub CopyFilesBasedOnCriteria()Dim fso As ObjectDim sourceFolder As StringDim destinationFolder As String 设置源文件夹路径和目标文件夹路径sourceFolder "C:\\test\\全波段模拟_Nimbostratus cloud - 副本"destinationFolder "C:\\Desktop\\MOD02数据…...

FPGA时序约束(七)文献时序约束实验测试

系列文章目录 文章目录 系列文章目录前言文献1:时钟移位LogiclockDesign Partition封装用户编写的程序停掉singletap抓取单端口RAM的数据文献2:SRAM约束前言 之前学习了一些基本时序约束的类别,包括主时钟约束、虚拟时钟约束、输入输出约束、多周期约束等等,但大多都是纸上…...

【数据库开发】DataX开发环境的安装部署(Python、Java)

文章目录 1、简介1.1 DataX简介1.2 DataX功能1.3 支持的数据通道 2、DataX安装配置2.1 DataX2.2 Java2.3 Python 3、DataX Web安装配置3.1 mysql3.2 DataX Web3.2.1 简介3.2.2 架构图3.2.3 依赖环境3.2.4 安装 4、入门使用4.1 DataX自带打印示例测试4.2 DataX生成任务模板文件4…...

Flutter实践一:package组织

1.架构概览 为了降低Flutter工程里lib的复杂度&#xff0c;应尽量拆分一些代码成为独立的package。如图&#xff1a; 我们将通用的组件、领域模型、API、features、存储、repository等抽取成了单独的package。这时lib只剩下多国语言、基本的页面、路由等代码了&#xff1a; 这…...

SpringCloud微服务:Ribbon负载均衡

目录 负载均衡策略&#xff1a; 负载均衡的两种方式&#xff1a; 饥饿加载 1. Ribbon负载均衡规则 规则接口是IRule 默认实现是ZoneAvoidanceRule&#xff0c;根据zone选择服务列表&#xff0c;然后轮询 2&#xff0e;负载均衡自定义方式 代码方式:配置灵活&#xff0c;但修…...

【教程】大气化学在线耦合模式WRF/Chem

查看原文>>>区域气象-大气化学在线耦合模式&#xff08;WRF/Chem&#xff09;在大气环境领域实践 随着我国经济快速发展&#xff0c;我国面临着日益严重的大气污染问题。近年来&#xff0c;严重的大气污染问题已经明显影响国计民生&#xff0c;引起政府、学界和人们越…...

GDS 命令的使用 srvctl service TAF application continuity

文档中prim and stdy在同一台机器上&#xff0c;不同机器需要添加address list TAF ENABLED GLOBAL SERVICE in GDS ENVIRONMNET 12C. (Doc ID 2283193.1)​编辑To Bottom In this Document Goal Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.…...

go 语言之 select

在 Go 语言中&#xff0c;select 是一种用于处理多个通道操作的控制结构。它可以用于在多个通道之间进行非阻塞的选择操作&#xff0c;从而实现并发控制和通信。 select 语句的基本语法如下&#xff1a; go select { case <-channel1:// 当 channel1 可读时执行的代码 cas…...

23款奔驰GLC260L升级小柏林音响 全新15个扬声器

2023年款奔驰GLC260 GLC300升级小柏林之声 3D音效系统 升级小柏林之声音响之后&#xff0c;全车一共有15个喇叭&#xff0c;1台功放&#xff0c;每一首音乐都能在车内掀起激情的音浪&#xff0c;感受纯粹的音乐享受&#xff0c;低频震撼澎湃&#xff0c;让你的心跳与音乐完美契…...

ssh 免密码登录

ssh 免密码登录 1. 原理 1.1 密码登录的通俗解释 把服务器当作一个凤凰社&#xff0c;每次进社公干都需要拿特别的门票入场&#xff0c;门票便是服务器上的账户密码&#xff1b; 1.2 免密登录 对于凤凰社的高级会员&#xff0c;会在社内存储一张高级会员身份&#xff08;id_rsa…...

小程序使用腾讯位置插件获取当前位置

1.小程序后台 设置-第三方设置-插件管理-添加插件 2.进入网站 腾讯位置服务 设置对应的额度 mapPickerPlugin(res) {const key ""; //使用在腾讯位置服务申请的keyconst referer "铅锂运营"; //调用插件的app的名称const category "生活服务,娱…...

零基础学Python怎么学习?我来告诉你

对于IT新手来说&#xff0c;零基础学Python的话&#xff0c;之后可选择的职业方向非常多。Python全栈和爬虫一直以来都是市场的最火的就业岗位之一&#xff0c;它们的薪资回报也算是开发岗里面的顶级了。而且随着大数据和人工智能时代的到来&#xff0c;数据处理和人工智能行业…...

开源软件 FFmpeg 生成模型使用图片数据集

本篇文章聊聊&#xff0c;成就了无数视频软件公司、无数在线视频网站、无数 CDN 云服务厂商的开源软件 ffmpeg。 分享下如何使用它将各种视频或电影文件&#xff0c;转换成上万张图片数据集、壁纸集合&#xff0c;来让下一篇文章中的模型程序“有米下锅”&#xff0c;这个方法…...

Linux Shell 通配符 / glob 模式

1、概念 glob 模式&#xff08;globbing&#xff09;也被称之为 shell 通配符&#xff0c;名字的起源来自于 Unix V6 中的 /etc/glob &#xff08;详见 man 文档&#xff09;。glob 是一种特殊的模式匹配&#xff0c;最常见的是通配符拓展&#xff0c;也可以将 glob 模式设为精…...

深入了解域名与SSL证书的关系

在如今数字化的世界里&#xff0c;网络安全成为我们关注的重要议题之一。为了确保数据在网络上传输的安全性&#xff0c;我们通常会采取各种安全措施&#xff0c;其中最常用的就是SSL证书。然而&#xff0c;很多人并不了解SSL证书是如何与域名相互关联的。 首先&#xff0c;我…...

计算属性与watch的区别,fetch与axios在vue中的异步请求,单文本组件使用,使用vite创建vue项目,组件的使用方法

7.计算属性 7-1计算属性-有缓存 模板中的表达式虽然很方便,但是只能做简单的逻辑操作,如果在模版中写太多的js逻辑,会使得模板过于臃肿,不利于维护,因此我们推荐使用计算属性来解决复杂的逻辑 <!DOCTYPE html> <html lang"en"> <head><meta …...

2023.11.14 hivesql的容器,数组与映射

目录 https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型…...

Android Glide照片宫格RecyclerView,点击SharedElement共享元素动画查看大图,Kotlin(1)

Android Glide照片宫格RecyclerView&#xff0c;点击SharedElement共享元素动画查看大图&#xff0c;Kotlin&#xff08;1&#xff09; <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"an…...

SELinux零知识学习八、SELinux策略语言之客体类别和许可(2)

接前一篇文章&#xff1a;SELinux零知识学习七、SELinux策略语言之客体类别和许可&#xff08;1&#xff09; 一、SELinux策略语言之客体类别和许可 2. 在SELinux策略中定义客体类别 SELinux策略中必须包括所有SELinux内核支持的客体类别和许可的声明&#xff0c;以及其它客体…...

deepstream-测试发送AMQP

1. 安装库 * glib 2.0 ---------- sudo apt-get install libglib2.0 libglib2.0-dev Install rabbitmq-c library -------------------------- sudo apt-get install librabbitmq-dev If you plan to have AMQP broker installed on your local machine ------------------…...

LLMs可以遵循简单的规则吗?

由于大型语言模型在现实世界中的责任越来越大&#xff0c;因此如何以可靠的方式指定和约束这些系统的行为很重要。一些开发人员希望为模型设置显式规则&#xff0c;例如“不生成滥用内容”&#xff0c;但这种方式可能会被特殊技术规避。评估LLM在面对对抗性输入时遵循开发人员提…...

如何挑选护眼灯?光照均匀度、色温、眩光这3点!

光照环境对我们的生活质量影响深远&#xff0c;尤其在孩子的成长过程中&#xff0c;良好的光照环境对其学习效率、视力保护都至关重要。光照中的很多因素都对视力有着或大或小的影响&#xff0c;本文将从光照均匀度、眩光、色温三个关键点&#xff0c;深入浅出地让消费者了解其…...

python 实验7

姓名&#xff1a;轨迹 学号&#xff1a;6666 专业年级&#xff1a;2021级软件工程 班级&#xff1a; 66 实验的准备阶段 (指导教师填写) 课程名称 Python开发与应用 实验名称 文件异常应用 实验目的 &#xff08;1&#xff09;掌握基本文件读写的方式&#xff1b; …...

日历应用程序 BusyCal mac中文版软件特点

BusyCal mac是一款日历应用程序&#xff0c;它可以帮助用户轻松地管理日程安排、事件提醒、会议安排等。BusyCal 支持 macOS 和 iOS 平台&#xff0c;并且可以与 iCloud、Google 日历、Exchange 等多种日历服务进行同步。 BusyCal mac软件特点 强大的日历功能&#xff1a;Busy…...

软件测试/测试开发丨接口自动化测试,接口鉴权的多种方式

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/28000 一、后端接口鉴权常用方法 cookie 携带身份信息请求认证之后的每次请求都携带cookie信息&#xff0c;cookie记录在请求头中 token 携带身份信息请求…...

08 robotframework 修改乱码问题

修改[Python目录]\Lib\site-packages\robotide\lib\robot\utils中的encodingsniffer.py if UNIXY: DEFAULT_SYSTEM_ENCODING UTF-8 DEFAULT_OUTPUT_ENCODING UTF-8 else: DEFAULT_SYSTEM_ENCODING cp1252 DEFAULT_OUTPUT_ENCODING cp437 将DEFAUL…...

门店如何设置多个联系电话和营业时间

​小程序中门店信息是非常重要的&#xff0c;通常需要有门店地址、门店电话和营业时间等。采云小程序支持设置多个门店联系电话&#xff0c;避免客户无法联系到门店。而且&#xff0c;也支持设置多个营业时间时段。例如周一到周五早08:00 - 18:00 。客户在周末下单的时候&#…...