一般Django的網(wǎng)絡程序開發(fā)步驟
- 配置開發(fā)的環(huán)境
- 初始化項目
- 啟動開發(fā)服務器
- 創(chuàng)建應用
- 創(chuàng)建View
- 配置訪問View的路由
配置項目開發(fā)環(huán)境
開發(fā)一個新的項目关霸,第一步就是配置項目的開發(fā)環(huán)境。這里使用兩個python開發(fā)環(huán)境的配置工具
- pyenv:Python的版本管理工具
- pipenv:官方推薦的包管理器,和
pyenv
配合可以快速的為每一個項目創(chuàng)建單獨的python開發(fā)環(huán)境娇昙。
執(zhí)行以下命令為教程項目創(chuàng)建python 3.6的開發(fā)環(huán)境
$ pipenv --python 3.6
安裝Django
$ pipenv install django
檢查Django的版本號哪雕,確認Django安裝成功
$ pipenv run python -m django --version
初始化項目
任何一個框架都有特定的文件結構和默認配置琼腔。django提供了django-admin
這一命令行工具幫助我們初始化一個django工程的文件結構抡诞,并且初始化了一些默認配置。
$ pipenv run django-admin startproject mysite
看一下新創(chuàng)建的project的目錄結構
mysite/
manage.p秤朗,
mysite/
__init__.py
settings.py
urls.py
wsgi.py
這幾個文件的作用:
- 最外面的
mysite
文件夾是django項目的容器煤蹭,它的名字不會影響django項目的運行,因此可以任意的更改名字。 -
manage.py
: 命令行的輔助工具硝皂,用來和改工程進行交互常挚。 - 內部的
mysite
:真正的python package。 -
mysite/settings.py
: django工程的配置文件 -
mysite/url.py
: django工程的路由配置文件 -
mysite/wsgi.py
: WSGI服務器啟動django工程的入口文件
開發(fā)服務器
網(wǎng)絡程序都是需要運行在服務器上面的稽物。我們平常開發(fā)的時候需要一個開發(fā)服務器待侵,方便我們隨時查看代碼的更開情況。當然最好還是寫單元測試和集成測試姨裸。
啟動開發(fā)服務器的命令:
pipenv run python manage.py runserver
開發(fā)服務器啟動后秧倾,終端會輸出如下信息:默認情況下,開發(fā)服務器會運行在http://127.0.0.1:8000地址傀缩。
注意的是那先,剛才啟動的服務器只能作為開發(fā)使用。在實際部署到生產(chǎn)環(huán)境的時候赡艰,我們需要使用類似apache的生產(chǎn)環(huán)境服務器。
創(chuàng)建投票應用
采用django創(chuàng)建的工程包括兩個層級慷垮,一個是叫工程揖闸,另外一個是工程下面的應用。一個工程可以包含多個應用料身。
首先在工程目錄下創(chuàng)建一個應用
$ pipenv run manage.py startapp polls
現(xiàn)在我們項目的文件目錄會變成如下圖所示:創(chuàng)建第一個View
第一步是修改polls/view.js
文件汤纸,創(chuàng)建第一個view
每一個view對應一個python的函數(shù),第一個參數(shù)是HttpRequest
實例芹血。HttpRequest
在本教程中使用不懂贮泞,會在以后的教程中進行介紹。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
第二部就是配置訪問該View的路由路徑幔烛。路由配置分成兩個層級啃擦,一個是在應用層配置路由,另外一個是在工程層配置路由饿悬。
修改polls/urls.py
配置應用層路由
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
修改mysite/urls.py
配置工程層路由
from django.urls import include, path
from django.contrib import admin
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
這種分級的路由配置模式有利于我們對應用進行插拔令蛉。當我們需要修改、更換或者刪除某個應用的時候狡恬,我們只需要將工程級路由進行更改即可珠叔。
值得注意的是開發(fā)服務器具有熱更新的功能,任何代碼的更新會引起服務器的自動重載傲宜。如果你發(fā)現(xiàn)服務器沒有重載运杭,你也可以使用下面這條命令重新啟動開發(fā)服務器夫啊。
pipenv run python manage.py runserver
使用地址http://localhost:8000/polls/訪問新的投票應用函卒。