使用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 專(zhuān)業(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)文章
PyTorch手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集進(jìn)行多分類(lèi)
這篇文章主要介紹了PyTorch手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集進(jìn)行多分類(lèi),損失函數(shù)采用交叉熵,激活函數(shù)采用ReLU,優(yōu)化器采用帶有動(dòng)量的mini-batchSGD算法,需要的朋友可以參考一下2022-03-03
python爬蟲(chóng)系列網(wǎng)絡(luò)請(qǐng)求案例詳解
這篇文章主要介紹了【Python從零到壹】python爬蟲(chóng)系列-網(wǎng)絡(luò)請(qǐng)求,從零開(kāi)始學(xué)習(xí)Python網(wǎng)絡(luò)爬蟲(chóng),如何從中獲取需要的數(shù)據(jù)信息,現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí)2021-04-04
python定時(shí)器(Timer)用法簡(jiǎn)單實(shí)例
這篇文章主要介紹了python定時(shí)器(Timer)用法,以一個(gè)簡(jiǎn)單實(shí)例形式分析了定時(shí)器(Timer)實(shí)現(xiàn)延遲調(diào)用的技巧,需要的朋友可以參考下2015-06-06
Python多線程模塊Threading用法示例小結(jié)
這篇文章主要介紹了Python多線程模塊Threading用法,結(jié)合實(shí)例形式分析了Python多線程模塊Threading相關(guān)概念、原理、進(jìn)程與線程的區(qū)別及使用技巧,需要的朋友可以參考下2019-11-11
python enumerate函數(shù)的使用方法總結(jié)
這篇文章主要介紹了python enumerate使用方法總結(jié),enumerate函數(shù)用于遍歷序列中的元素以及它們的下標(biāo),有興趣的可以了解一下2017-11-11

