路由分发
补充:每一个应用可以有独立的templates模板文件夹,static静态文件加,urls.py
总路由
#方法一from app01 import urls as app01_urls
from app02 import urls as app02_urlsurlpatterns = [url(r'^publisher_list/', views.publisher_list),url(r'^app01/', include(app01_urls)),url(r'^app02/', include(app02_urls)),
]#方法二,推荐使用。urlpatterns = [url(r'^publisher_list/', views.publisher_list),url(r'^app01/', include('app01.urls')),url(r'^app02/', include('app02.urls')),#!!!! 不能加$
]
子路由
#app01 url.pyfrom django.conf.urls import url
from app01 import viewsurlpatterns = [url(r'^test/', views.test),
]#app02 url.py #与app01 相同
命名空间(了解)
总路由
urlpatterns = [url(r'^publisher_list/', views.publisher_list),url(r'^app01/', include('app01.urls',namespace='app01')),url(r'^app02/', include('app02.urls',namespace='app02')),#!!!! 不能加$
]
Ps:
1. 保证命名冲突,可以不用。
2. 命名的时候,加入前缀。
伪静态(了解)
将动态网页伪装静态网页。
目的:
增大搜索引擎本网站收录概率
总结:
无论怎么处理,干不过rmb玩家。
做法:
url路径后面加如".html"
虚拟环境(了解)
补充扩展:
工作中,会给每一个项目配置一个requirements.txt文件,里面记录了该项目所需要的所有的模块和版本,直接一条一条安装即可。
建议:
1.使用本机环境
2.不要太多虚拟环境
1.创建新环境,下载新解析器
2.太多浪费空间资源。
->create new window 需要等待。
安装需要的版本
重新打开pycharm,使用之前创建的虚拟环境即可,不需要重新创建。
django版本区别
3.0:
a. url.py 使用path ,不支持url正则。可使用re_path替代。
b. 2.x和3.x 等价与1.x的url
c. 3.0是异步框架,不兼容pymysql。(3.0异步不成熟)
path虽然不支持url,但支持5中转换器。
path('index/<int:id>',index)#先转换类型,在以关键字传入视图函数。
可自定义转换器。
3. models模型层里面1.x默认是级联更新删除的
但是2.x和3.x需要手动更新
1.x:models.ForeignKey(to='Publish')
2.x/3.x: models.ForeignKey(to='Publish',on_delete=models.CASCADE.....)