路由分發
補充:每一個應用可以有獨立的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.....)