上海网站关键词排名,建站公司要不要承担网站被黑,做h5的网站的区别,网站根据城市做二级目录今日内容概要
路由层 无名分组 有名分组 反向解析 无名分组反向解析 有名分组反向解析 路由分发 伪静态的概念(了解) 名称空间(了解) 虚拟环境(了解) django1.x和django2.x的区别 路由层
url(r^test/$, views.test),
url(rtestadd, views.testadd),
## 首页的地址
u…今日内容概要
路由层 无名分组 有名分组 反向解析 无名分组反向解析 有名分组反向解析 路由分发 伪静态的概念(了解) 名称空间(了解) 虚拟环境(了解) django1.x和django2.x的区别 路由层
url(r^test/$, views.test),
url(rtestadd, 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/?a1b2
get请求的第二种方式
http://127.0.0.1:8000/test/123/11
有名分组
url(r^test/(?Pyear\d)/(?Pmonth\d)$, views.test),# 有名分组就是把正则中小括号里的匹配到的内容以关键字参数的形式传递给视图函数
有名和无名是否能够混合使用 url(r^test/(?Pyear\d)/(\d)$, views.test),# 不要混合使用要么无名要么有名但是无名、有名可以使用多次无名有名分组的使用可以有了接收参数的方法
反向解析
就是每一个路由都可以起一个别名通过Django提供的一些方法去解析这个别名得到一个别名对应的路由
url(r^v1/v2/v3/home$, views.home, namehome),
# 后端反向解析
反向解析
resreverse(home) # /v1/v2/v3/home
print(res)# 前端反向解析
a href{% url home %}点我看美女/a
无名有名分组反向解析
无名分组反向解析
url(r^v1/v2/v3/home/(\d)/(\d)/$, views.home, namehome)
# 后端解析
resreverse(home, args(123, 11)) # /v1/v2/v3/home/1
print(res)# 前端解析
a href{% url home 1 123 %}点我看美女/a有名分组反向解析
url(r^v1/v2/v3/home/(?Pyear\d)/(?Pmon\d)/$, views.home, namehome)
# 后端解析
resreverse(home, args(123, 11)) # /v1/v2/v3/home/1
resreverse(home, kwargs{year:123, mon:1}) # /v1/v2/v3/home/1
print(res)# 前端解析
a href{% url home year1 mon123 %}点我看美女/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, namespaceapp01)),
url(r^app02/, include(app02.urls, namespaceapp02)),# 解析
resreverse(app01:login, args(11,22)) # /v1/v2/v3/home/1
resreverse(app02:login, args(11,22)) # /v1/v2/v3/home/1
伪静态的概念
伪静态其实就是把动态页面改成静态页面 动态页面 它不是在HTML页面中写死的它是根据后端的数据变化而变化 我们的页面上的数据是从数据库查询出来都是可以是动态页面
静态页面 HTML、CSS 案例https://www.cnblogs.com/bigsai/p/17827160.html 这个就是伪装之后的页面 伪装的目的为了更好的被各大搜索引擎抓到静态页面是最容易被抓到的有个别的网站就会做伪装seo seo优化关键词被容易搜索到 sem广告 怎么样去伪装 url(r^v1/v2/test.html/$, views.test)
虚拟环境
以后针对于每一个独立的项目都会去配置一个解释器多个项目能不能使用同一个解释器原则上是能的 我们会针对于不同的项目单独配置一个新的解释器 每一个解释器只装针对于这个项目的模块 我们会使用虚拟环境类似于是一个纯净版的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中不用指定级联更新级联删除