当前位置: 首页 > 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类型…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看&#xff0c;后端SQL查询确实返回了数据&#xff0c;但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离&#xff0c;并且ai辅助开发的时候&#xff0c;很容易出现前后端变量名不一致情况&#xff0c;还不报错&#xff0c;只是单…...

ZYNQ学习记录FPGA(二)Verilog语言

一、Verilog简介 1.1 HDL&#xff08;Hardware Description language&#xff09; 在解释HDL之前&#xff0c;先来了解一下数字系统设计的流程&#xff1a;逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端&#xff0c;在这个过程中就需要用到HDL&#xff0c;正文…...

【QT控件】显示类控件

目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏&#xff1a;QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...

从数据报表到决策大脑:AI重构电商决策链条

在传统电商运营中&#xff0c;决策链条往往止步于“数据报表层”&#xff1a;BI工具整合历史数据&#xff0c;生成滞后一周甚至更久的销售分析&#xff0c;运营团队凭经验预判需求。当爆款突然断货、促销库存积压时&#xff0c;企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…...