知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >
Python進(jìn)階(三十六)-Web框架Django項(xiàng)目搭建全過(guò)程
發(fā)表時(shí)間:2017-4-15
發(fā)布人:葵宇科技
瀏覽次數(shù):85
#Python進(jìn)階(三十六)-Web框架Django項(xiàng)目搭建全過(guò)程
??IDE說(shuō)明:
-
Win7系統(tǒng)
-
Python:3.5
-
Django:1.10
-
Pymysql:0.7.10
-
Mysql:5.5
注:可通過(guò)pip freeze
查看已安裝庫(kù)版本信息。
Django 是由 Python 開(kāi)發(fā)的一個(gè)免費(fèi)的開(kāi)源網(wǎng)站框架,可以用于快速搭建高性能,優(yōu)雅的網(wǎng)站!
##Django 特點(diǎn) -
強(qiáng)大的數(shù)據(jù)庫(kù)功能
-
用python的類(lèi)繼承,幾行代碼就可以擁有一個(gè)豐富,動(dòng)態(tài)的數(shù)據(jù)庫(kù)操作接口(API),如果需要你也能執(zhí)行SQL語(yǔ)句。
-
自帶的強(qiáng)大的后臺(tái)功能
-
幾行簡(jiǎn)單的代碼就讓你的網(wǎng)站擁有一個(gè)強(qiáng)大的后臺(tái),輕松管理你的內(nèi)容! 優(yōu)雅的網(wǎng)址
-
用正則匹配網(wǎng)址,傳遞到對(duì)應(yīng)函數(shù),隨意定義,如你所想!
-
模板系統(tǒng)–強(qiáng)大,易擴(kuò)展的模板系統(tǒng),設(shè)計(jì)簡(jiǎn)易,代碼,樣式分開(kāi)設(shè)計(jì),更容易管理。
-
緩存系統(tǒng)–與memcached或其它的緩存系統(tǒng)聯(lián)用,更出色的表現(xiàn),更快的加載速度。
-
國(guó)際化–完全支持多語(yǔ)言應(yīng)用,允許你定義翻譯的字符,輕松翻譯成不同國(guó)家的語(yǔ)言。
??有關(guān)Python,Mysql的安裝操作這里不再進(jìn)行闡述,大家可在網(wǎng)絡(luò)上自行查找解決。其中,django,pymysql的安裝使用pip install *命令即可完成。
??安裝好Django之后, 就可以使用 django-admin.py管理工具來(lái)創(chuàng)建一個(gè)項(xiàng)目。首先我們來(lái)看下django-admin.py的命令介紹,在命令行輸入django-admin.py查看可用的項(xiàng)目管理命令。
??Django項(xiàng)目創(chuàng)建HelloWorld項(xiàng)目具體過(guò)程如下:
??Step1: 在搭建Django項(xiàng)目之前,首先選擇項(xiàng)目存放目錄。然后在Dos窗口CD切換到項(xiàng)目存放目錄。
??Step2: 創(chuàng)建項(xiàng)目 執(zhí)行django-admin.py startproject HelloWorld
??打開(kāi)IDEA,可看到創(chuàng)建的項(xiàng)目目錄如下圖所示:
??目錄說(shuō)明:
- HelloWorld: 項(xiàng)目的容器。
- manage.py: 一個(gè)實(shí)用的命令行工具,可讓你以各種方式與該 Django 項(xiàng)目進(jìn)行交互。
- HelloWorld/init.py: 一個(gè)空文件,告訴 Python 該目錄是一個(gè) Python 包。
- HelloWorld/settings.py: 該 Django 項(xiàng)目的設(shè)置/配置。
- HelloWorld/urls.py: 該 Django 項(xiàng)目的 URL 聲明; 一份由 Django 驅(qū)動(dòng)的網(wǎng)站"目錄"。
- HelloWorld/wsgi.py: 一個(gè) WSGI 兼容的 Web 服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目。
??接下來(lái)我們進(jìn)入 HelloWorld 目錄輸入以下命令,啟動(dòng)服務(wù)器:
python manage.py runserver 0.0.0.0:8000
??0.0.0.0 讓其它電腦可連接到開(kāi)發(fā)服務(wù)器,8000 為端口號(hào)。如果不說(shuō)明,那么端口號(hào)默認(rèn)為 8000。
??在瀏覽器輸入你服務(wù)器的ip及端口號(hào),如果正常啟動(dòng),輸出結(jié)果如下:
??Step3: 創(chuàng)建應(yīng)用 在命令行輸入django-admin.py startapp demo
??打開(kāi)IDEA,可看到創(chuàng)建的項(xiàng)目目錄如下圖所示:
??目錄說(shuō)明:
- demo: 應(yīng)用的容器。注:后面的頁(yè)面設(shè)計(jì)文件,在此目錄下創(chuàng)建目錄templates,名為XX.html的文件放在此處。
- init.py:如上一個(gè)__init__.py文件
- migrations: 數(shù)據(jù)庫(kù)相關(guān)目錄,同步數(shù)據(jù)庫(kù)之后會(huì)出現(xiàn)數(shù)據(jù)類(lèi)。
- admin.py: admin后臺(tái)管理文件
- apps.py: app應(yīng)用管理文件
- models.py:主要用一個(gè) Python 類(lèi)來(lái)描述數(shù)據(jù)表,稱(chēng)為模型(model) 。運(yùn)用這個(gè)類(lèi),你可以通過(guò)簡(jiǎn)單的 Python的代碼來(lái)創(chuàng)建、檢索、更新、刪除 數(shù)據(jù)庫(kù)中的記錄而無(wú)需寫(xiě)一條又一條的SQL語(yǔ)句。
- tests.py:測(cè)試文件
- views.py:包含了頁(yè)面的業(yè)務(wù)邏輯。
##創(chuàng)建超級(jí)管理員
python manage.py createsuperuser
# 按照提示輸入用戶名和對(duì)應(yīng)的密碼就好了郵箱可以留空,用戶名和密碼必填
# 修改 用戶密碼可以用:
python manage.py changepassword username
##附
###服務(wù)端響應(yīng)客戶端請(qǐng)求過(guò)程
??流程圖如下:
??上面的流程圖可以大致描述Django處理request的流程,按照流程圖2的標(biāo)注,可以分為以下幾個(gè)步驟:
- 1.用戶通過(guò)瀏覽器請(qǐng)求一個(gè)頁(yè)面。
- 2.請(qǐng)求到達(dá)Request Middlewares,中間件對(duì)request做一些預(yù)處理或者直接response請(qǐng)求。
- 3.URLConf通過(guò)urls.py文件和請(qǐng)求的URL找到相應(yīng)的View。
- 4.View Middlewares被訪問(wèn),它同樣可以對(duì)request做一些處理或者直接返回response。
- 5.調(diào)用View中的函數(shù)。
- 6.View中的方法可以選擇性的通過(guò)Models訪問(wèn)底層的數(shù)據(jù)。
- 7.所有的Model-to-DB的交互都是通過(guò)manager完成的。
- 8.如果需要,Views可以使用一個(gè)特殊的Context。
- 9.Context被傳給Template用來(lái)生成頁(yè)面。
- a.Template使用Filters和Tags去渲染輸出
- b.輸出被返回到View
- c.HTTPResponse被發(fā)送到Response Middlewares
- d.任何Response Middlewares都可以豐富response或者返回一個(gè)完全不同的response
- e.Response返回到瀏覽器,呈現(xiàn)給用戶
###url() 函數(shù)
??Django url() 可以接收四個(gè)參數(shù),分別是兩個(gè)必選參數(shù):regex、view 和兩個(gè)可選參數(shù):kwargs、name,接下來(lái)詳細(xì)介紹這四個(gè)參數(shù)。
- regex: 正則表達(dá)式,與之匹配的 URL 會(huì)執(zhí)行對(duì)應(yīng)的第二個(gè)參數(shù) view。
- view: 用于執(zhí)行與正則表達(dá)式匹配的 URL 請(qǐng)求。
- kwargs: 視圖使用的字典類(lèi)型的參數(shù)。
- name: 用來(lái)反向獲取 URL。
##Django項(xiàng)目部署
??在前面的介紹中我們使用 python manage.py runserver 來(lái)運(yùn)行服務(wù)器。這只適用測(cè)試環(huán)境中使用。
??正式發(fā)布的服務(wù),我們需要一個(gè)可以穩(wěn)定而持續(xù)的服務(wù)器,比如apache, Nginx, lighttpd等,本文后續(xù)將以 Nginx 為例。
##設(shè)置用自己的iP地址訪問(wèn)項(xiàng)目
- 1.首先需要執(zhí)行>manage.py runserver 0.0.0.0:8000。
- 2.在setting.py里面需要添加ALLOWED_HOSTS="*"。
##學(xué)習(xí)資料
??http://www.ziqiangxuetang.com/django/django-tutorial.html
相關(guān)案例查看更多
相關(guān)閱讀
- 區(qū)塊鏈
- 云南網(wǎng)站建設(shè)優(yōu)化
- 小程序制作
- 百度小程序開(kāi)發(fā)公司
- 重慶網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)公司
- 網(wǎng)站建設(shè)案例
- 汽車(chē)回收管理
- 云南小程序開(kāi)發(fā)公司
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 云南小程序公司
- 云南企業(yè)網(wǎng)站
- 昆明做網(wǎng)站
- 網(wǎng)站建設(shè)首選
- 支付寶小程序被騙
- 云南網(wǎng)站建設(shè) 網(wǎng)絡(luò)服務(wù)
- 云南網(wǎng)站建設(shè)方案 doc
- 云南小程序開(kāi)發(fā)制作公司
- 云南網(wǎng)站開(kāi)發(fā)
- 云南網(wǎng)站建設(shè)公司地址
- 網(wǎng)頁(yè)制作
- 網(wǎng)站建設(shè)制作
- 云南科技公司
- 微信分銷(xiāo)系統(tǒng)
- 報(bào)廢車(chē)
- 汽車(chē)報(bào)廢系統(tǒng)
- 小程序設(shè)計(jì)
- 網(wǎng)站建設(shè)公司地址
- 云南小程序開(kāi)發(fā)公司哪家好
- 云南網(wǎng)站建設(shè)哪家好