使用Django搭建web服務(wù)器的例子(最最正確的方式)
今晚在Mac OS中搭建web服務(wù)器時(shí)遇到一點(diǎn)沖突,逛了幾個(gè)論壇和網(wǎng)站,都說(shuō)的太片面。
先列出最正確的搭建步驟:(無(wú)論你是任何操作系統(tǒng),或者任何版本,都沒(méi)毛?。?/p>
① 隨便找個(gè)位置建一個(gè)文件夾(比如:Windows下的D盤(pán))
② 打開(kāi)終端(Windows下是cmd) cd 進(jìn)入文件夾位置(簡(jiǎn)單吧)
③ 創(chuàng)建一個(gè)虛擬環(huán)境(虛擬環(huán)境就是磁盤(pán)一個(gè)位置,為了后續(xù)部署到服務(wù)器,這也是必須的并且是最正確的一步)
④ 激活虛擬環(huán)境
⑤ 安裝Django
⑥ 在Django 中創(chuàng)建一個(gè)項(xiàng)目
⑦ 創(chuàng)建數(shù)據(jù)庫(kù)
⑧ 使用 runserver 命令啟動(dòng)服務(wù)器
請(qǐng)?zhí)崆鞍惭b好 python3.6、pip3 及 pycharm 專業(yè)版。
----------------------------------------------------------
每一步都超簡(jiǎn)單,幾分鐘就完成了。。不要信那些亂七八糟的講解。首先他們不是創(chuàng)建的虛擬環(huán)境,就是錯(cuò)的。
我看好多人都寫(xiě)踩了幾天幾夜的坑集成了SQLite,配置Django到path環(huán)境變量……一系列錯(cuò)誤操作
----------------------------------------------------------
我在工作目錄下新建了一個(gè)文件夾 qihao_blog

cd進(jìn)入 qihao_blog 目錄后創(chuàng)建一個(gè)虛擬環(huán)境
python3 -m venv ll_env
這一步創(chuàng)建了一個(gè)名為 ll_env 的虛擬環(huán)境(隨便起了一個(gè)名字而已)

運(yùn)行python3 -m venv ll_env 命令之后會(huì)在我們文件夾下創(chuàng)建一個(gè)文件夾 ll_env 這個(gè)文件夾就是虛擬環(huán)境
----------------------------------
這一步要講一下,由于Mac系統(tǒng)自帶Python2.7,Xcode目前最高僅支持2.7,
所以開(kāi)發(fā)IOS的就不要卸載系統(tǒng)自帶的Python2.7。直接安裝Python 3.6就可以了。
需要注意的是直接運(yùn)行Python命令調(diào)用的是2.7,調(diào)用Python3.6需要使用 Python3 命令
----------------------------------
Windows用戶沒(méi)有以上問(wèn)題。。。。。
這一步僅僅建個(gè)文件夾輸一條命令就完事了,PyCharm直接創(chuàng)建項(xiàng)目對(duì)pip版本有要求,不支持現(xiàn)在的新版pip,需要降級(jí)。
如果你使用的是較早的Python版本,或者系統(tǒng)沒(méi)有正確設(shè)置,不能使用模塊venv,需安裝virtualenv包
(最好還是使用Python3)
接下來(lái)激活虛擬環(huán)境
source ll_env/bin/activate
注意 如果你使用的是Windows系統(tǒng),請(qǐng)使用命令 ll_env\Scripts\activate(不包含source)來(lái)激活這個(gè)虛擬環(huán)境。
要停止使用虛擬環(huán)境,可執(zhí)行命令:deactivate

環(huán)境處于活動(dòng)狀態(tài)時(shí),環(huán)境名將包含在括號(hào)內(nèi)。在這種情況下,可以在環(huán)境中安裝包,并使用已安裝的包。
在ll_env虛擬環(huán)境中安裝的包僅在該環(huán)境處于 活動(dòng)狀態(tài) 時(shí)才可用。
安裝Django
創(chuàng)建并激活虛擬環(huán)境后,就可安裝Django了:
pip install Django
這只是把Django安裝在剛才創(chuàng)建的虛擬環(huán)境文件夾里。
由于是在虛擬環(huán)境中工作,因此在所有的系統(tǒng)中,安裝Django的命令都相同:
無(wú)需使用python -m pip install package_name 這樣較長(zhǎng)的命令。更不用配置path環(huán)境變量。因?yàn)椴皇窍到y(tǒng)環(huán)境。
別忘了,Django僅在虛擬環(huán)境處于活動(dòng)狀態(tài)時(shí)才可用。

很多人用一條命令驗(yàn)證Django的path環(huán)境變量配置的是否正確。
如果不放心你可以試試虛擬環(huán)境能不能調(diào)用
django-admin help

記住這個(gè)時(shí)候虛擬環(huán)境是激活狀態(tài)…………(前面有個(gè)括號(hào),里面是虛擬環(huán)境名字)
接下來(lái)在Django 中創(chuàng)建一個(gè)項(xiàng)目
這個(gè)時(shí)候建議使用我們常用的PyCharm,當(dāng)然也可以繼續(xù)使用dos命令窗口。
PyCharm中打開(kāi)剛才新建的qihao_blog文件夾

很多人會(huì)疑惑,我為什么不從第一步開(kāi)始就使用PyCharm直接創(chuàng)建一個(gè)Django項(xiàng)目呢???
當(dāng)然PyCharm會(huì)自動(dòng)創(chuàng)建虛擬環(huán)境,并下載好Django。。
但是pip高版本不支持。不值得改來(lái)改去的。
前面我也提到了版本的問(wèn)題。直接dos命令行創(chuàng)建虛擬環(huán)境后,打開(kāi)使用高版本就好了。。
在terminal中輸入如下命令。創(chuàng)建一個(gè)my_blog項(xiàng)目。
django-admin.py startproject my_blog .

這個(gè)命令 末尾的句點(diǎn) 讓新項(xiàng)目使用合適的目錄結(jié)構(gòu),這樣開(kāi)發(fā)完成后可輕松地將應(yīng)用程序部署到服務(wù)器。
注意 千萬(wàn)別忘了這個(gè)句點(diǎn),否則部署應(yīng)用程序時(shí)將遭遇一些配置問(wèn)題。如果忘記了這個(gè)句點(diǎn),就將創(chuàng)建的文件和文件夾刪除(ll_env除外),再重新運(yùn)行這個(gè)命令。
創(chuàng)建完成后的目錄結(jié)構(gòu)就如截圖看到一樣,多了一個(gè)my_blog文件夾。。
接下來(lái)創(chuàng)建數(shù)據(jù)庫(kù)
python manage.py migrate
為什么是Python命令不是Python3命令???
因?yàn)槟憔驮赑ython3的虛擬環(huán)境中做各種操作。時(shí)刻記住做各種操作都是在環(huán)境激活的狀態(tài)下。。
運(yùn)行命令后,工程目錄下就會(huì)多了一個(gè) db.sqlite3 文件

在使用SQLite的新項(xiàng)目中首次執(zhí)行這個(gè)命令時(shí),Django將新建一個(gè)數(shù)據(jù)庫(kù) db.sqlite3 首次執(zhí)行命令migrate時(shí),將讓Django確保數(shù)據(jù)庫(kù)與項(xiàng)目的當(dāng)前狀態(tài)匹配。
啟動(dòng)服務(wù)器
python manage.py runserver
現(xiàn)在打開(kāi)瀏覽器,并輸入U(xiǎn)RL:http://localhost:8000/ 或者 http://127.0.0.1:8000/

這個(gè)頁(yè)面是Django創(chuàng)建的,若要關(guān)閉這個(gè)服務(wù)器,按Ctrl + C即可。
注意 如果出現(xiàn)錯(cuò)誤消息“That port is already in use”(指定端口已被占用),
請(qǐng)執(zhí)行命令python manage.py runserver 8001,讓Diango使用另一個(gè)端口;
如果這個(gè)端口也不可用,請(qǐng)不斷執(zhí)行上述命令,并逐漸增大其中的端口號(hào),直到找到可用的端口。
以上這篇使用Django搭建web服務(wù)器的例子(最最正確的方式)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python獲取當(dāng)前公網(wǎng)ip并自動(dòng)斷開(kāi)寬帶連接實(shí)例代碼
這篇文章主要介紹了Python獲取當(dāng)前公網(wǎng)ip并自動(dòng)斷開(kāi)寬帶連接實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python增強(qiáng)下git那長(zhǎng)長(zhǎng)的指令詳解
這篇文章主要介紹了Python增強(qiáng)下git那長(zhǎng)長(zhǎng)的指令 ,在開(kāi)發(fā)中用到的代碼目錄結(jié)構(gòu),本文也給大家詳細(xì)講解,需要的朋友可以參考下2021-09-09
淺談matplotlib中FigureCanvasXAgg的用法
這篇文章主要介紹了淺談matplotlib中FigureCanvasXAgg的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python中ArcPy柵格裁剪柵格(批量對(duì)齊柵格圖像范圍并統(tǒng)一行數(shù)與列數(shù))
本文介紹基于Python中ArcPy模塊,實(shí)現(xiàn)基于柵格圖像批量裁剪柵格圖像,同時(shí)對(duì)齊各個(gè)柵格圖像的空間范圍,統(tǒng)一其各自行數(shù)與列數(shù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
教你如何使用Python開(kāi)發(fā)一個(gè)釘釘群應(yīng)答機(jī)器人
在聊天工具大肆侵入我們生活各個(gè)方面的今天,各種消息無(wú)時(shí)無(wú)刻不在侵?jǐn)_我們的每一寸時(shí)間,這種情況下,一個(gè)聊天的機(jī)器人就很有必要了.今天,我們來(lái)學(xué)習(xí)一下使用 Python 開(kāi)發(fā)一個(gè)釘釘?shù)膽?yīng)答機(jī)器人,助你「人生苦短,少回消息」,需要的朋友可以參考下2021-06-06
python中使用enumerate函數(shù)遍歷元素實(shí)例
這篇文章主要介紹了python中使用enumerate函數(shù)遍歷元素實(shí)例,這是一個(gè)比較簡(jiǎn)單的例子,需要的朋友可以參考下2014-06-06
Python學(xué)習(xí)筆記(二)基礎(chǔ)語(yǔ)法
對(duì)于任何一門(mén)語(yǔ)言的學(xué)習(xí),學(xué)語(yǔ)法是最枯燥無(wú)味的,但又不得不學(xué),基礎(chǔ)概念較繁瑣,本文將不多涉及概念解釋,用例子進(jìn)行相關(guān)解析,適當(dāng)與C語(yǔ)言對(duì)比,避免陷入語(yǔ)法的苦海。我認(rèn)為初學(xué)者學(xué)習(xí)語(yǔ)法的目標(biāo)是學(xué)會(huì)使用即可,關(guān)于對(duì)概念的深入理解,剖析,沒(méi)有一定的知識(shí)積累是很難做到的。2014-06-06
pandas中fillna()函數(shù)填充NaN和None的實(shí)現(xiàn)
本文主要介紹了pandas中fillna()函數(shù)填充NaN和None的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

