Django_学习_02

  • 路由系统                      urls

  • 视图                             views

  • 模板                            TempLates

  • 静态文件和媒体文件   static

  • 中间件                           middleware

  • ORM                             databases

1.路由系统

        a.传统路由

urls 内容如下:

from django.urls import path
from app01 import views
urlpatterns = [# path('admin/', admin.site.urls),path('login/', views.login),path('article',views.article),path('inOne/<int:nid>/',views.inOne),path('abc/<str:a>/',views.abc)path('efg/<slug:b>/',views.efg),path('hij/<path:c>',views.hij),

views 内容如下:

from django.shortcuts import render,HttpResponse# Create your views here.
def login(request):print('login')return HttpResponse('login')def article(request):return HttpResponse('article')def inOne(request,nid):print(nid)return HttpResponse('nid'+'inOne')def abc(request,a):print(a)return HttpResponse('abc')def efg(request,b):print(b)return HttpResponse('efg')
def hij(request,c):print(c)return HttpResponse('hij')

传统路由总结如下

格式是<类型:参数>  且这个方式是可以传递参数到函数及views里面

  • int,整数 #匹配整数 格式 < 数据类型 : 数据 >

  • str,字符串  #匹配字符串

  • slug,字母+数字+下滑线+- # 匹配 字母+数字+下划线 + -号等

  • uuid,uuid格式

  • path,路径,可以包含 /

        b.正则表达式路由

urls 内容如下:

from django.urls import path,re_pathfrom app01 import views# 正则路由
urlpatterns = [re_path(r'aaa/(\d+)/',views.aaa),re_path(r'bbb/(\w+)-(\d*)/',views.bbb), # 这样写就是按分组位置传参,views函数中形参随意定义re_path(r'ccc/(?P<s1>\w+)/(?P<s2>\d+)/',views.ccc), # s1,s2就是参数名称,views函数中参数必须定义为s1,s2]

views 内容如下:

from django.shortcuts import render,HttpResponse# 正则路由
def aaa(request,d):print(d)return HttpResponse('正则-aaa')def bbb(request,e,f):  #e,f 按位置来结束url过来的参数,可以任意定义这两个形参print(e)print(f)return HttpResponse('正则-bbb')def ccc(request,s1,s2):  #s1,s2是url固定带过来的必须定义为s1,s2 必须和urls中对应,可以理解成字典print(s1)print(s2)return HttpResponse('正则-ccc')
  • 正则需要导入re_path 
  • 需要在路径哪里前面加个r'aaa/(\w+)'
  • 这里必须用括号分组
  • 有多少个分组,views 中的对应的函数就需要多少个参数来对应  是和分组对应的
  • 有两种书写方式,这两个方式可以借助python的 args 和 kwargs 来理解  俗称一个不带名字一个带名字

路由分发

假如一个项目中有很多个功能,可以分到多个app中,

inlucde + 多apps(一般),将功能拆分不到不同的app中。在每个app中创建每个app自己的路由(urls)。例如有两个app分别是 api web 格式如下:

from django.urls import path,include
urlpatterns = [path('api/',include('apps.api.urls')),  # api 是app目录且后面必须加/ ,include后面是app对应的子路由路径path('web/',include('apps.web.urls')),  # web 是app目录且后面必须加/ ,include后面是app对应的子路由路径]

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

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

相关文章

基础课8——中文分词

中文分词指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。在英文的行文中&#xff0c;单词之间是以空格作为自然分界符的&#xff0c;而中文只是字、句和段能通过明显的分界符来简单划界&#xff0c;唯独词没有一个…

开源与闭源:创新与安全的平衡

目录 一、开源和闭源的优劣势比较 一、开源软件的优劣势 优势 劣势 二、闭源软件的优劣势 优势 劣势 二、开源和闭源对大模型技术发展的影响 一、机器学习领域 二、自然语言处理领域 三、数据共享、算法创新与业务拓展的差异 三、开源与闭源的商业模式比较 一、盈…

C#入门(10):集合用法介绍

在C#中&#xff0c;集合是一种特殊的数据类型&#xff0c;允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型&#xff1a; List&#xff1a;它是一个有序的元素列表&#xff0c;用户可以添加、删除或查找元素。Dictio…

【数据结构】详解链表结构

目录 引言一、链表的介绍二、链表的几种分类三、不带头单链表的一些常用接口3.1 动态申请一个节点3.2 尾插数据3.3 头插数据3.4 尾删数据3.5 头删数据3.6 查找数据3.7 pos位置后插入数据3.8 删除pos位置数据3.9 释放空间 四、带头双向链表的常见接口4.1创建头节点&#xff08;初…

220V交流转直流的简易电源设计

220V交流转直流的简易电源设计 设计简介设计原理电路图变压器电路交流转直流电路3.3V电源接口电路 PCB3D图 实践检验 设计简介 通过模拟电路的相关知识&#xff0c;尝试将220V的交流电转化为我们指定电压的直流电。 设计原理 将220V交流电转化为直流电的方法常用的有通过变压器…

物联专栏丨云边协同技术加速AloT能力向边缘侧快速演进

随着物联网被明确定位为我国新型基础设施的重要组成部分&#xff0c;成为支撑数字经济发展的关键基础设施&#xff0c;大型企业纷纷加速构建大集中式的物联网云平台&#xff0c;数以万亿计的新设备接入网络并产生海量数据&#xff0c;形成数据采集、流转、存储、处理与反馈闭环…

UE 视差材质 学习笔记

视差材质节点&#xff1a; 第一个是高度图&#xff0c; Heightmap Channel就是高度图的灰色通道&#xff0c;在RGBA哪个上面&#xff0c;例如在R上就连接(1,0,0,0)&#xff0c;G上就连接&#xff08;0,1,0,0&#xff09;逐次类推 去看看对比效果&#xff1a; 这个是有视差效果…

C#中的string和string builder有什么区别

在 C# 中&#xff0c;string 和 StringBuilder 都用于处理字符串&#xff0c;但它们之间存在一些关键的差异&#xff1a; 一、 不可变性&#xff1a; string 类型在 .NET 中是不可变的。这意味着一旦创建了一个 string 实例&#xff0c;就无法更改它。当你对 string 进行修改…

​LeetCode解法汇总2760. 最长奇偶子数组

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给你一个下…

【QML】QML与C++混合编程,结构体参数互相传递

1. 方法1&#xff1a; C结构体的每个成员都声明成QML的属性。QML中就可以直接以属性的方式读写。 .h文件 typedef struct {QString startRecord;QString fanSpeed;QString scrBrightness;QString printerType; } ManuSet_t;class ManuSet : public QObject {Q_OBJECTQ_PROPE…

idea 环境搭建及运行java后端源码

1、 idea 历史版本下载及安装 建议下载和我一样的版本&#xff0c;2020.3 https://www.jetbrains.com/idea/download/other.html&#xff0c;idea分为专业版本&#xff08;Ultimate&#xff09;和社区版本&#xff08;Community&#xff09;&#xff0c;前期可以下载专业版本…

【pytorch深度学习 应用篇02】训练中loss图的解读,训练中的问题与经验汇总

文章目录 loss图解析train loss ↘ \searrow ↘ ↗ \nearrow ↗ 先降后升 loss图解析 train loss ↘ \searrow ↘ 不断下降&#xff0c;test loss ↗ \nearrow ↗ 不断上升&#xff1a;原因很多&#xff0c;我是把workers1&#xff0c;batchSize8192train loss ↘ \searro…

Java系列之 解决 项目 jar 包无法上传到Github

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 &#x1f3f7;️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

软件运维常见面试题

软件运维常见面试题 文章目录 软件运维常见面试题1、请说出在TCP/IP五层参考模型中&#xff0c;从下网上分别指的是&#xff1f;2、请说出OSI七层参考模型中&#xff0c;从下往上分别指得是&#xff1f;3、交换机的工作原理中&#xff0c;不包含下列那个选项&#xff1f;4、请说…

动态规划专项---最长上升子序列模型

文章目录 怪盗基德的滑翔翼登山合唱队形友好城市最大上升子序列和拦截导弹导弹防御系统最长公共上升子序列 一、怪盗基德的滑翔翼OJ链接 本题思路:本题是上升子序列模型中比较简单的模型&#xff0c;分别是从前往后和从后往前走一遍LIS即可。 #include <bits/stdc.h>co…

新零售系统平台解决方案 线上线下小程序怎么做

新零售线上线下解决方案是将传统零售业务与互联网科技相结合&#xff0c;通过数字化、智能化手段提升零售业务效率和用户体验的解决方案&#xff0c;它既有提供消费者线下体验&#xff0c;强调“稳”&#xff0c;又有互联网线上的“快”。 线上线下小程序可以通过一体化的进销存…

拒绝服务攻击工具的编写

预计更新网络扫描工具的编写漏洞扫描工具的编写Web渗透测试工具的编写密码破解工具的编写漏洞利用工具的编写拒绝服务攻击工具的编写密码保护工具的编写情报收集工具的编写 拒绝服务攻击是一种恶意攻击&#xff0c;旨在使目标系统无法正常工作。这种攻击通常通过发送大量流量或…

Windows核心编程 静态库与动态库

资源文件 .rc 文件 会被 rc.exe 变成 .res 文件(二进制文件) 在链接时链接进入 .exe 文件 一、如何保护源码 程序编译链接过程 不想让别人拿到源代码&#xff0c;但是想让其使用功能&#xff0c;根据上图观察&#xff0c;把自己生成的obj给对方&#xff0c;对方拿到obj后&…

详解ssh远程登录服务

华子目录 简介概念功能 分类文字接口图形接口 文字接口ssh连接服务器浅浅介绍一下加密技术凯撒加密加密分类对称加密非对称加密非对称加密方法&#xff08;也叫公钥加密&#xff09; ssh两大类认证方式&#xff1a;连接加密技术简介密钥解析 ssh工作过程版本协商阶段密钥和算法…

国科大数据挖掘期末复习——聚类分析

聚类分析 将物理或抽象对象的集合分组成为由类似的对象组成的多个类的过程被称为聚类。由聚类所生 成的簇是一组数据对象的集合&#xff0c;这些对象与同一个簇中的对象彼此相似&#xff0c;与其他簇中的对象相异。 聚类属于无监督学习&#xff08;unsupervised learning&…