Django的多層路由


如果項目中只使用到了一個APP應用,完全可以避免使用多層路由,多層路由在項目里涉及到2個或多個APP時使用

所謂路由,簡單來說,就是給項目路徑分流。

比如有一個項目 webnet,下面使用到了兩個應用程序 stu_sys 和 tea_sys,需要區分訪問時

可以在各自的APP根目錄新建urls文件夾,將自己下面的對應關系寫入:

1 from django.conf.urls import url 2 from tea_sys import views 3 
4 urlpatterns=[ 5 
6 
7 url(r'^show/', views.openone), 8 
9 ]

同時導入各自對應的views文件比如views文件下基本配置:

1 from django.shortcuts import HttpResponse,render,redirect 2 
3 def openone(request): 4     return render(request,'show.html')

最后再將各自的urls文件導入到wennet項目下的urls文件 並注冊

1 from stu_sys import urls as stu_urls 2 from tea_sys import urls as tea_urls 3 
4 urlpatterns = [ 5   
6     url(r'^stu_sys/',include(stu_urls)), 7     url(r'^tea_sys/',include(tea_urls)), 8 
9 ]

 因為都是urls文件,會重名,所以可以用as給它們各自命名,這樣就完成了二級路由

下次在訪問項目時前面則需要加入各自的APP名稱了,   比如     http://127.0.0.1:8000/tea_sys/show/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

url的反向解析:通過給urls文件里面的對應關系起一個別名,放到HTML頁面里,它會自動解析整個項目下名字匹配的值對應的路徑 ,從而取到正確的路徑,

就算是對應關系的名字被更改了也不會影響

比如:

1 url(r'^mc/', views.openone,name='see'),

按照see去整個項目里檢索:

1 <a href="{% url 'see' %}">點我</a>

要注意的是:{% url 'see' %} 會對整個項目進行檢索,所以前面不要添加任何路徑,否則可能會出錯

另外一種,也可以在視圖里實現反向解析,需要在視圖里導入reverse模塊

1 from django.urls import reverse

然后在views的函數里去調用reverse去檢索

1 rec=reverse('see')

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 auto_now_add=True 會在創建數據庫時,把當前時間添加到數據庫

auto_now=True 會在每次更新記錄時更新數據  用作日志記錄時間方便

時間間隔的處理:

會用到datetime模塊

1 import datetime 2 
3 now=datetime.datetime.now() 4 d=datetime.timedelta(days=7) 5 long=now+d 6 print(now,long)

輸出的是七天之后的當前時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM