web前端基礎知識-(七)Django進階

來源:互聯網
上載者:User

標籤: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),
  • 找到urls.py檔案,修改路由規則
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),]
  • 在views.py檔案建立對應方法
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進階

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.