標籤:url manage microsoft soft mic mil rom 調整 視圖
通過上節課的學習,我們已經對Django有了簡單的瞭解,現在來深入瞭解下~
1. 路由系統
1.1 單一路由對應
url(r‘^index$‘, views.index),
1.2 基於正則的路由
url(r‘^index/(\d*)‘, views.index),url(r‘^manage/(?P<name>\w*)/(?P<id>\d*)‘, views.manage),
from django.conf.urls import url,includefrom django.contrib import adminfrom cmdb import views urlpatterns = [ url(r‘^index‘, views.index), url(r‘^detail-(\d+).html/‘, views.detail),]
USER_DICT = { ‘1‘:{‘name‘:‘root1‘,‘email‘:‘[email protected]‘}, ‘2‘:{‘name‘:‘root2‘,‘email‘:‘[email protected]‘}, ‘3‘:{‘name‘:‘root3‘,‘email‘:‘[email protected]‘}, ‘4‘:{‘name‘:‘root4‘,‘email‘:‘[email protected]‘},} def index(request): return render(request,"index.html",{"user_dict":USER_DICT}) def detail(request,nid): # nid指定的是(\d+)裡的內容 detail_info = USER_DICT[nid] return render(request, "detail.html", {"detail_info": detail_info})
1.3 url分組
在url.py增加對應路徑
from django.conf.urls import url,includefrom django.contrib import adminfrom cmdb import views urlpatterns = [ url(r‘^index‘, views.index), url(r‘^detail-(?P<nid>\d+)-(?P<uid>\d+).html/‘, views.detail),<br> # nid=\d+ uid=\d+]
在views.py檔案建立對應方法
def detail(request,**kwargs): print(kwargs) #{‘nid‘: ‘4‘, ‘uid‘: ‘3‘} nid = kwargs.get("nid") detail_info = USER_DICT[nid] return render(request, "detail.html", {"detail_info": detail_info})
1.4 為路由映射名稱
from django.conf.urls import url,includefrom django.contrib import adminfrom cmdb import views urlpatterns = [ url(r‘^asdfasdfasdf/‘, views.index, name=‘i1‘), #第一種方式i1 url(r‘^yug/(\d+)/(\d+)/‘, views.index, name=‘i2‘), #第二種方式i2 url(r‘^buy/(?P<pid>\d+)/(?P<nid>\d+)/‘, views.index, name=‘i3‘), #第三種方式i3]
在templates目錄下的index.html
<body>{#第一種方法i1 路徑asdfasdfasdf/#}{#<form action="{% url "i1" %}" method="post">#}{#第二種方法i2 路徑yug/1/2/#}{#<form action="{% url "i2" 1 2 %}" method="post">#}{#第三種方法i3 路徑buy/1/9//#}<form action="{% url "i3" pid=1 nid=9 %}" method="post"> <p><input name="user" type="text" placeholder="使用者名稱"/></p> <p><input name="password" type="password" placeholder="密碼"/></p> <p><input type="submit" value="提交"/></p></form></body>
1.5 根據app對路由分類
主程式urls.py檔案
from django.conf.urls import url,includefrom django.contrib import admin urlpatterns = [ url(r‘^monitor/‘, include(‘monitor.urls‘)), #調整到monitor目錄中的urls.py檔案]
cmdb下的url.py檔案
from django.conf.urls import urlfrom django.contrib import adminfrom monitor import views#urlpatterns = [ url(r‘^login‘, views.login),]
1.6 擷取當前URL
view.py中配置
def index(request): print(request.path_info) #擷取用戶端當前的訪問連結 # / index return render(request,"index.html",{"user_dict":USER_DICT})
在templates目錄下的index.html檔案
<form action="{{ request.path_info }}" method="post"> <p><input name="user" type="text" placeholder="使用者名稱"/></p> <p><input name="password" type="password" placeholder="密碼"/></p> <p><input type="submit" value="提交"/></p></form>
2. 視圖
3. ORM操作
web前端基礎知識-(七)Django進階