路由分发与名称空间
路由分发
""" django的每一个应用都可以有自己的templates文件夹 urls.py static文件夹 正是基于上述的特点 django能够非常好的做到分组开发(每个人只写自己的app) 作为组长 只需要将手下书写的app全部拷贝到一个新的django项目中 然后在配置文件里面注册所有的app再利用路由分发的特点将所有的app整合起来 当一个django项目中的url特别多的时候 总路由urls.py代码非常冗余不好维护 这个时候也可以利用路由分发来减轻总路由的压力 利用路由分发之后 总路由不再干路由与视图函数的直接对应关系 而是做一个分发处理 识别当前url是属于哪个应用下的 直接分发给对应的应用去处理 """ # 总路由 from app01 import urls as app01_urls from app02 import urls as app02_urls urlpatterns = [ url(r'^admin/', admin.site.urls), # 1.路由分发 url(r'^app01/',include(app01_urls)), # 只要url前缀是app01开头 全部交给app01处理 url(r'^app02/',include(app02_urls)) # 只要url前缀是app02开头 全部交给app02处理 # 2.终极写法 推荐使用 url(r'^app01/',include('app01.urls')), url(r'^app02/',include('app02.urls')) # 注意事项:总路由里面的url千万不能加$结尾 ] # 子路由 # app01 urls.py from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^reg/',views.reg) ] # app02 urls.py from django.conf.urls import url from app02 import views urlpatterns = [ url(r'^reg/',views.reg) ]
名称空间
# 当多个应用出现了相同的别名 我们研究反向解析会不会自动识别应用前缀 """ 正常情况下的反向解析是没有办法自动识别前缀的 """ # 名称空间 # 总路由 url(r'^app01/',include('app01.urls',namespace='app01')), url(r'^app02/',include('app02.urls',namespace='app02')) # 解析的时候 # app01 urlpatterns = [ url(r'^reg/',views.reg,name='reg') ] # app02 urlpatterns = [ url(r'^reg/',views.reg,name='reg') ] reverse('app01:reg') reverse('app02:reg') {% url 'app01:reg' %} {% url 'app02:reg' %} # 其实只要保证名字不冲突 就没有必要使用名称空间 """ 一般情况下 有多个app的时候我们在起别名的时候会加上app的前缀 这样的话就能够确保多个app之间名字不冲突的问题 """ urlpatterns = [ url(r'^reg/',views.reg,name='app01_reg') ] urlpatterns = [ url(r'^reg/',views.reg,name='app02_reg') ]
伪静态
""" 静态网页 数据是写死的 万年不变 伪静态 将一个动态网页伪装成静态网页 为什么要伪装呢? https://www.cnblogs.com/Dominic-Ji/p/9234099.html 伪装的目的在于增大本网站的seo查询力度 并且增加搜索引擎收藏本网上的概率 搜索引擎本质上就是一个巨大的爬虫程序 总结: 无论你怎么优化 怎么处理 始终还是干不过RMB玩家 """ urlpatterns = [ url(r'^reg.html',views.reg,name='app02_reg') ]