day55 反向解析和视图层精确定位

上周内容回顾

orm的增删改查
1. 查询
from app01 import models
models.UserInfo.objects.all() # 查询所有的字段信息和数据
res=models.UserInfo.objects.first() # 查询一条,而且是第一条,queryset对象,列表套对象的形式
if res:res[0]
try:res[0]
# 它是支持索引取值的,如果是第一条就直接first()
select * from userinfo where username ='' and password = '';
res=models.UserInfo.objects.filter(username='', password='').first() # and
res=models.UserInfo.objects.filter(username='').filter(password='').filter().first() # and
"""链式表达式的思想,jQuery中也有这样的写法"""
models.UserInfo.objects.all()[0]
models.UserInfo.objects.all()[0:2] # 支持切片
​
2. 增加
models.UserInfo.objects.create(username='', password='')
​
res=models.UserInfo(username='', password='')
res.save() # 真正的操作数据库
​
3. 修改
models.UserInfo.objects.filter(pk=1).update(username='', password='')
res=models.UserInfo.objects.first()
res.username='';
res.password=''
res.save() # 真正的操作数据库
​
4. 删除
models.UserInfo.objects.filter(pk=1).delete()
res.delete()
如何创建表关系
一对一:外键字段(都可以,推荐在查询频率较高的一方)
一对多: 外键字段(在多的一方)
多对多:外键字段在第三张表中
​
# django1.x
models.OneToOneField(to='', to_field='')
models.ForeignKey(to='', to_field='')
models.ManyToManyField(to='')
# django2.x以上都要这么去写
models.OneToOneField(to='', to_field='', on_delete=models.CASCADE)
models.ForeignKey(to='', to_field='', on_delete=models.CASCADE)
models.ManyToManyField(to='')
Django的请求生命周期流程图
"""必会会画!还要能够说出每一部分的相关知识点""" # 面试问

今日内容概要

路由层
  • 无名分组 有名分组

  • 反向解析

  • 无名分组反向解析

  • 有名分组反向解析

  • 路由分发

  • 伪静态的概念(了解)

  • 名称空间(了解)

  • 虚拟环境(了解)

  • django1.x和django2.x的区别

视图层

  • 三板斧

  • 序列化模块(dumps JsonResponse类)

  • form表单上传文件

  • FBV(function based view)和CBV(class based view)

  • 视图文件中可以是函数也可以是类

今日内容详细

路由层
url(r'^test/$', views.test),
url(r'testadd', views.testadd),
## 首页的地址
url(r'^$', views.home),
​
# django2中
path('admin/', admin.site.urls), # 精准匹配,不支持正则表达式
path('test/', views.test), # 精准匹配,不支持正则表达式
re_path(r'^test/$', views.test) # url(r'^test/$', views.test),
​
​
# url方法的第一个参数支持的是正则表达式
无名分组
url(r'^test/(\d+)$', views.test),
​
# 无名分组就是把正则中小括号里的匹配到的内容以位置参数的形式传递给视图函数
​
get请求的第一种方式:
http://127.0.0.1:8000/test/?a=1&b=2
get请求的第二种方式:
http://127.0.0.1:8000/test/123/11
有名分组
url(r'^test/(?P<year>\d+)/(?P<month>\d+)$', views.test),# 有名分组就是把正则中小括号里的匹配到的内容以关键字参数的形式传递给视图函数
有名和无名是否能够混合使用
 url(r'^test/(?P<year>\d+)/(\d+)$', views.test),# 不要混合使用,要么无名,要么有名,但是,无名、有名可以使用多次
​
"""无名有名分组的使用可以有了接收参数的方法"""
反向解析
就是每一个路由都可以起一个别名,通过Django提供的一些方法去解析这个别名,得到一个别名对应的路由
url(r'^v1/v2/v3/home$', views.home, name='home'),
# 后端反向解析
'''反向解析'''
res=reverse('home') # /v1/v2/v3/home
print(res)
​
# 前端反向解析
<a href="{% url 'home' %}">点我看美女</a>
无名有名分组反向解析
无名分组反向解析
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>
​
​
​
有名分组反向解析
url(r'^v1/v2/v3/home/(?P<year>\d+)/(?P<mon>\d+)/$', views.home, name='home')
# 后端解析
res=reverse('home', args=(123, 11)) # /v1/v2/v3/home/1
res=reverse('home', kwargs={'year':123, 'mon':1}) # /v1/v2/v3/home/1
print(res)
​
# 前端解析
<a href="{% url 'home' year=1 mon=123 %}">点我看美女</a>
路由分发
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')),
​
"""分发的路由第一个参数最后一个不要加 $ """
名称空间(了解)
# 第二种方式
url(r'^app01/', include('app01.urls', namespace='app01')),
url(r'^app02/', include('app02.urls', namespace='app02')),
​
# 解析
res=reverse('app01:login', args=(11,22)) # /v1/v2/v3/home/1
res=reverse('app02:login', args=(11,22)) # /v1/v2/v3/home/1
伪静态的概念(了解)
伪静态: 其实就是把动态页面改成静态页面
动态页面:"""它不是在html页面中写死的,它是根据后端的数据变化而变化"""我们的页面上的数据是从数据库查询出来都是可以是动态页面静态页面:htmlcss
案例:https://www.cnblogs.com/bigsai/p/17827160.html # 这个就是伪装之后的页面
伪装的目的:"""为了更好的被各大搜索引擎抓大,静态页面是最容易被抓到的,有个别的网站就会做伪装,seo"""seo:优化关键词被容易搜索到sem: 广告(RMB)
怎么样去伪装   url(r'^v1/v2/test.html/$', views.test)
虚拟环境(了解)
以后针对于每一个独立的项目,都会去配置一个解释器,多个项目能不能使用同一个解释器,原则上是能的
我们会针对于不同的项目单独的配置一个新的解释器
3.6 3.7 3.8 
每一个解释器只装针对于这个项目的模块
我们会使用虚拟环境:类似于是一个纯净版本的Python解释器,虚拟环境你是需要自己下载的,下载的时候,使用的是哪个Python解释器版本,下载下来的就是这个版本的解释器,纯净版的
​
"""不要频繁的创建虚拟环境,过多的虚拟环境肯定会占用资源"""
​
# 学一个命令行创建虚拟环境
django1和django2的区别
1. 路由文件
django1.x中使用的是url:支持正则
django2.x中使用的是path(不支持正则:精准匹配)和re_path(url):支持正则
path:但是它只支持五种转换器
​
​
Django默认支持以下5个转化器:
​
● str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
● int,匹配正整数,包含0。
● slug,匹配字母、数字以及横杠、下划线组成的字符串。
● uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
● path,匹配任何非空字符串,包含了路径分隔符(/)(不能用?)
​
自定义转化器
2. 创建表关系django2中必须指定参数:on_delete:djanxo1中不用指定:级联更新级联删除

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

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

相关文章

【表面重建】第一篇:delaunay三角化(未完)

文章目录 声明delaunay三角片的特性实现delaunay算法的分类生长算法逐点插入算法分治算法基于Bowyer-Watson算法 code调用scipy的API调用cgal的API 参考来源 声明 本帖持续更新中最近一次更新日期&#xff1a;2023.11.13如有纰漏望指正&#xff01; delaunay三角片的特性 de…

Flink SQL 表值聚合函数(Table Aggregate Function)详解

使用场景&#xff1a; 表值聚合函数即 UDTAF&#xff0c;这个函数⽬前只能在 Table API 中使⽤&#xff0c;不能在 SQL API 中使⽤。 函数功能&#xff1a; 在 SQL 表达式中&#xff0c;如果想对数据先分组再进⾏聚合取值&#xff1a; select max(xxx) from source_table gr…

2022年06月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 Python中 print(“八进制{: o}”.format(12)) 正确的输出结果是?( ) A: 八进制:O B: 八进制:O14 C: 八进制14O D: 八进制14 答案:D 字符串的format()格式。 第2题 下列的程…

PostgreSQL基础入门

为什么选择PostgreSQL 功能更全面&#xff1a;PGSQL的功能更加全面&#xff0c;支持开窗函数、物化视图、分区表、json等类型&#xff0c;MySQL8以上支持开窗函数、分区表、json等&#xff0c;但物化视图仍不支持。高可用&#xff1a;PG更适合分布式环境&#xff0c;如流复制、…

pychon/PIL/opencv/json学习过程中遇到的问题

1. 使用PIL.Image读取图片 注意&#xff1a;pytorch中对图像预处理是transforms的输入必须是PIL格式的文件&#xff0c;使用cv2读取的图片就按照第二条的代码处理&#xff08;3通道合并、归一化处理&#xff09; from PIL import Image img Image.open("test1.jpg"…

TensorFlow: An open-source software library for Machine Intelligence

Google开源的机器学习软件包 项目主页:https://www.tensorflow.org/Github主页:GitHub - tensorflow/tensorflow: An Open Source Machine Learning Framework for Everyone主要版本:1.0(当前最新版本),0.12.0开源协议:Apache 2.0TensorFlow™ 是一个采用数据流图(data…

2023 年最新企业微信官方会话机器人开发详细教程(更新中)

目标是开发一个简易机器人&#xff0c;能接收消息并作出回复。 获取企业 ID 企业信息页面链接地址&#xff1a;https://work.weixin.qq.com/wework_admin/frame#profile 自建企业微信机器人 配置机器人应用详情 功能配置 接收消息服务器配置 配置消息服务器配置 配置环境变量…

如何利用 cpolar 内网穿透技术实现 U8 用友 ERP 异地访问

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上&#xff0c;点击开始菜单栏&#xff0c;打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

【MATLAB源码-第75期】基于模拟退火算法(SA)的栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 模拟退火算法是一种启发式优化算法&#xff0c;通常用于解决组合优化问题&#xff0c;例如旅行商问题和图着色问题。它模拟了固体材料在退火过程中逐渐冷却达到稳定状态的行为&#xff0c;以寻找问题的全局最优解。 以下是模…

Hadoop原理,HDFS架构,MapReduce原理

Hadoop原理&#xff0c;HDFS架构&#xff0c;MapReduce原理 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c…

postswigger 靶场(CSRF)攻略-- 1.没有防御措施的 CSRF 漏洞

靶场地址&#xff1a; What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy (portswigger.net)https://portswigger.net/web-security/csrf 没有防御措施的 CSRF 漏洞 题目中已告知易受攻击的是电子邮件的更改功能&#xff0c;而目…

Oracle Primavera Unifier 23.10 新特征

根据官方的说法&#xff0c;Unifier 23.7 ~ 23.9 更多为对功能bug的修复&#xff0c;以下将对23.10进行重点介绍 Cost Sheets Cost Sheets Support Conditional Formatting Conditional formatting of table data is now supported in cost sheets with features such as ce…

基于注解的声明式事务

1.什么是事务 数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列&#xff0c;这些操作要么全部执行要么全部不执行&#xff0c;是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。 2.事务的特性 A&#xff1a;原子性(A…

java Stream编程笔记

文章目录 Stream介绍什么是 Stream&#xff1f; Stream中间操作过滤操作&#xff08;filter&#xff09;映射操作&#xff08;map&#xff09;排序操作&#xff08;sorted&#xff09;截断操作&#xff08;limit 和 skip&#xff09; Stream 的终止操作forEach 和 peek聚合操作…

【pytorch深度学习】torch-张量Tensor

torch-张量Tensor 文章目录 torch-张量Tensor1. 张量Tensor 1. 张量Tensor torch.tensor() # 创建一个标量&#xff08;0维张量&#xff09; scalar_tensor torch.tensor(3.14) # 创建一个向量&#xff08;1维张量&#xff09; vector_tensor torch.tensor([1, 2, 3]) # 创…

【FPGA】十进制计数器 | 实现 4-bit 2421 十进制计数器 | 有限状态机(FSM)

目录 Ⅰ. 实践说明 0x00 十进制计数器 0x01 有限状态机&#xff08;FSM&#xff09; Ⅱ. 实践部分 0x00 4-bit 2421 十进制计数器 Ⅰ. 实践说明 0x00 十进制计数器 十进制计数器是一种以十进制运算的计数器&#xff0c;从 0 数到 9&#xff0c;然后返回 0 状态。由于它需…

青少年编程学习 等级考试 蓝桥杯/NOC/GESP等比赛资料合集

一、博主愚见 在当今信息技术高速发展的时代&#xff0c;编程已经成为了一种必备的技能。随着社会对于科技人才的需求不断增加&#xff0c;青少年编程学习正逐渐成为一种趋势。为了更好地帮助青少年学习编程&#xff0c;提升他们的技能和素质&#xff0c;博主结合自身多年从事青…

如何使用CORS和CSP保护前端应用程序安全

前端应用在提供无缝用户体验方面起着核心作用。在当今互联网的环境中&#xff0c;第三方集成和API的普及使得确保强大的安全性至关重要。安全漏洞可能导致数据盗窃、未经授权访问以及品牌声誉受损。本文将向您展示如何使用CORS和CSP为您的网页增加安全性。 嗨&#xff0c;大家好…

大数据可视化数据大屏可视化模板【可视化项目案例-05】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…

半导体PLM解决方案助力企业提升竞争力 | 百世慧®

行业背景 半导体&#xff08;semiconductor&#xff09;指常温下导电性能介于导体与绝缘体之间的材料。 半导体产业主要涵盖集成电路、处理器、存储器、传感器及光电子设备等领域。产品则广泛应用在个人电脑、智能手机、平板电脑、汽车电子、医疗设备、工业控制等领域。 近些…