Django創建子應用詳解
簡述:同Flask框架一樣,Django也用視圖來編寫Web應用的業務邏輯。
Django的視圖是定義在子應用的views.py中的,下面讓我們一起來了解一下。
1. 創建
打開剛創建的users模塊,在views.py中編寫視圖代碼。
from django.http import HttpResponse
def index(request):
"""
index視圖
:param request: 包含了請求信息的請求對象
:return: 響應對象
"""
return HttpResponse("hello the world!")
說明:
- 視圖函數的第一個傳入參數必須定義,用於接收Django構造的包含了請求數據的HttpReqeust對象,通常名爲request。
- 視圖函數的返回值必須爲一個響應對象,不能像Flask框架中一樣直接返回一個字符串,可以將要返回的字符串數據放到一個HTTPResponse對象中。
2.定義應用路由URL
1) 在子應用中新建一個urls.py文件用於保存該應用的路由。
2) 在users/urls.py文件中定義路由信息。
from django.conf.urls import url
from . import views #同級目錄下用.代替
# urlpatterns是django自動識別的路由列表變量
urlpatterns = [
# 每個路由信息都需要使用url函數來構造,去註冊路徑
# url(路徑, 視圖)
url(r'^index/$', views.index),
]
3) 在工程總路由demo/urls.py中添加子應用的路由(url)數據。
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls), # django默認包含的
# 添加
url(r'^users/', include('users.urls')),
]
- 使用include將子應用users裏的全部路由包含進工程路由中;
- r’^users/’ 決定了users子應用的路由以**/users/開頭,如我們剛定義的視圖名稱爲index,其最終的完整訪問路徑爲/users/index/**
include函數除了可以傳遞字符串之外,也可以直接傳遞應用的urls模塊,達到不同目錄下切換的作用,如下所示
from django.conf.urls import url, include
from django.contrib import admin
import users.urls # 先導入應用的urls模塊
urlpatterns = [
url(r'^admin/', admin.site.urls), # django默認包含的
# url(r'^users/', include('users.urls')),
url(r'^users/', include(users.urls)), # 添加應用的路由
]
4) 啓動運行
1.CMD中運行
python manage.py runserver
2.Pycharm中啓動(手動添加runserver)
3.成果演示
在瀏覽器中輸入網址127.0.0.1:8000/users/index/ 可看到返回的信息,如下:
感謝大家的品讀,很希望能夠幫到你們,讓我們共同進步,biubibuibu…