django中app分組

08.13自我總結

django中app分組

一.django路由系統app進行分組

1.建立app

  • 使用pycharm建立django的時候, 加上app的名字,後續多個app只需複製粘貼以前app整個文件便可
  • 命令行Python manage.py startapp app的名字

2.app內文件簡介

  • migrations:模型操做的遷移文件
  • admin.py:django admin的時候會用
  • apps.py:註冊文件
  • models.py:寫表生成的代碼
  • tests.py:測試文件
  • views.py:視圖文件,通常業務邏輯會寫在其中
  • urls.py:格式與主urls.py同樣複製過來便可

3.include用於主路由和分路由鏈接

主urls,py:html

from django.conf.urls import url, include
urlpatterns = [
    url(r'^classes/', include("classes.urls")),
    url(r'^staudent/', include("staudent.urls")),
    url(r'^teachers/', include("teachers.urls")),#app名稱.urls
]

分urls.py:python

from django.conf.urls import url
from classes import views
urlpatterns = [
    url(r'^get_classes/', views.get_classes) #其域名爲/classes/get_classes/
                                                #而不是/get_classes/
]

4.路由的分發

正則表達式匹配正則表達式

urlrouters:django

url(r'^test/(\w+)/(\w+)/', views.test),
url(r'^test1/(?P<id>\w+)/(?P<name>\w+)/', views.test1),

views.py:app

def test(request, name, id):
    print(id, name)
    return HttpResponse('test')

def test1(request, name, id):
    print(id, name)
    return HttpResponse('test')

注意:post

  • 若是沒有?P的約束, 傳參的時候, 會根據順序來獲取參數對應的值
  • 而若是有約束的話, 傳參的時候, 會固定的將獲取的值傳給所對應的的約束

自定製404notfound的頁面:測試

url(r'^', views.notfound),
views:
def notfound(request);
    return render(request, "404.html")

5.利用正則表達式以及name關鍵字反向路由

urls.py:url

url(r'^login.*?/', views.login, name='xxx'),

login.html:命令行

<form action="{% url "xxx" %}" method="post">
<input type="text">
</form>

當咱們輸入url 爲loginXXXXXXXXXXXXXX的時候網頁上form表單的url會自動變成login
若是url(r'^login11', views.login, name='xxx'),上form表單的url會自動變成login11code

相關文章
相關標籤/搜索