如果項目中只使用到了一個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)
輸出的是七天之后的當前時間