一、環(huán)境安裝
在Linux系統(tǒng)下寫項(xiàng)目時(shí)建議一個(gè)項(xiàng)目一個(gè)環(huán)境,這里就需要用到虛擬環(huán)境的知識(shí),關(guān)于虛擬環(huán)境后續(xù)會(huì)詳細(xì)整理出來,這里先放一些基本的命令
#虛擬環(huán)境
mkvirtualenv # 創(chuàng)建虛擬環(huán)境
rmvirtualenv # 刪除虛擬環(huán)境
workon # 進(jìn)入虛擬環(huán)境,查看所有虛擬環(huán)境
deactive # 退出虛擬環(huán)境
# pip
pip install # 安裝依賴包
pip uninstall # 卸載依賴包
pip list # 查看已安裝的依賴包
pip freeze # 凍結(jié)當(dāng)前環(huán)境的依賴包
二、創(chuàng)建工程
Django創(chuàng)建項(xiàng)目可以借助Django提供的命令來幫助創(chuàng)建,也可以使用Pycharm創(chuàng)建,這里主要使用命令的形式創(chuàng)建
創(chuàng)建工程的命令為 ; django-admin startproject 工程名稱
執(zhí)行后會(huì)出現(xiàn)新的工程目錄
2、工程目錄說明
首先一個(gè)與項(xiàng)目同名的目錄,打開這個(gè)目錄,其中
settings.py?是項(xiàng)目的整體配置文件
urls.py?是項(xiàng)目的URL配置文件
wsgi.py?是項(xiàng)目與WSGI兼容的Web服務(wù)器入口
manage.py?是項(xiàng)目管理文件,通過它管理項(xiàng)目
三、運(yùn)行開發(fā)服務(wù)器
在開發(fā)階段,django提供了一個(gè)純python編寫的輕量級(jí)web服務(wù)器,僅在開發(fā)階段使用
運(yùn)行服務(wù)器命令如下
python?manage.py?runserver ip:端口
或
python?manage.py?runserver
可以不寫IP和端口,默認(rèn)IP是127.0.0.1 端口為8000
啟動(dòng)后,在瀏覽器輸入網(wǎng)站'127.0.0.0:8000'便可看到效果
注:Django默認(rèn)工作在Debug模式下,修改項(xiàng)目會(huì)自動(dòng)重啟
按下ctrl+c停止服務(wù)器
四、創(chuàng)建之應(yīng)用
在Django項(xiàng)目開發(fā)中,可以將不同的功能模塊放在不同的子應(yīng)用中,Django的視圖編寫也是放著子應(yīng)用中的
1、創(chuàng)建子應(yīng)用
python?manage.py?startapp 子應(yīng)用名稱
例如:
python?manage.py?startapp users
manage.py?是創(chuàng)建工程時(shí)自動(dòng)生成的管理文件
執(zhí)行后,在工程目錄中多出一個(gè)名為users的子目錄
2、子應(yīng)用目錄說明
admin.py?文件跟網(wǎng)站的后臺(tái)管理站點(diǎn)配置相關(guān)
apps.py?文件用于配置當(dāng)前子應(yīng)用
migrations 目錄用于存放數(shù)據(jù)庫
models.py?文件用于保存數(shù)據(jù)庫模型類
tests.py?文件用于開發(fā)測試用例
views.py?文件用于編寫Web應(yīng)用視圖
3、注冊安裝子應(yīng)用
創(chuàng)建出來的子應(yīng)用需要注冊安裝后才能使用
在項(xiàng)目的配置文件中settings.py中, INSTALLED_APPS項(xiàng)保存了工程中已經(jīng)注冊安裝的子應(yīng)用
注冊安裝子應(yīng)用的方法,將子應(yīng)用的配置信息apps.py 中的Config類添加INSTALLED_APPS列表中
五、創(chuàng)建視圖
1、創(chuàng)建視圖函數(shù)
在ueers子應(yīng)用中,在viwes.py中編寫視圖代碼。
from django.http import HttpResponse
def index(request):
? ? """
? ? index視圖
? ? :param request: 包含了請求信息的請求對象
? ? :return: 響應(yīng)對象
? ? """
? ? return HttpResponse("hello the world!")
視圖函數(shù)的第一個(gè)傳入?yún)?shù)必須定義,用于接受Django構(gòu)造的包含了請求數(shù)據(jù)的HttpRequest對象,通常名為request
視圖函數(shù)的返回值必須為一個(gè)響應(yīng)對象,可以將要返回的數(shù)據(jù)放到一個(gè)HttpResponse對象中
2、定義路由URL
在子應(yīng)用中新建一個(gè)urls.py文件用于保存該應(yīng)用的路由
在users/urls.py文件中定義路由信息
fromdjango.conf.urlsimporturlfrom.importviews# urlpatterns是被django自動(dòng)識(shí)別的路由列表變量urlpatterns=[# 每個(gè)路由信息都需要使用url函數(shù)來構(gòu)造# url(路徑, 視圖)url(r'^index/$',views.index),
在工程總路由demo/urls.py中添加子應(yīng)用的路由數(shù)據(jù)
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
? ? url(r'^admin/', admin.site.urls),? # django默認(rèn)包含的
? ? # 添加
? ? url(r'^users/', include('users.urls')),
]
使用include來將子應(yīng)用users里的全部路由包含進(jìn)工程路由中;
r'^users/'?決定了users子應(yīng)用的所有路由都已/users/開頭,如我們剛定義的視圖index,其最終的完整訪問路徑為/users/index/。
include函數(shù)除了可以傳遞字符串之外,也可以直接傳遞應(yīng)用的urls模塊,如
from django.conf.urls import url, include
from django.contrib import admin
import users.urls? # 先導(dǎo)入應(yīng)用的urls模塊
urlpatterns = [
? ? url(r'^admin/', admin.site.urls),
? ? # url(r'^users/', include('users.urls')),
? ? url(r'^users/', include(users.urls)),? # 添加應(yīng)用的路由
]
啟動(dòng)運(yùn)行
重新啟動(dòng)Django程序
python manage.py runserver
在瀏覽器中輸入網(wǎng)址127.0.0.1:8000/users/index/可看到返回的信息
hello the world!