windows系統(tǒng)IIS部署Django項(xiàng)目的實(shí)踐
采用IIS服務(wù)器部署相比django提供的開(kāi)發(fā)者服務(wù)器具有更好的并發(fā)訪問(wèn)能力,性能更加穩(wěn)定。
一、Python WSGI部署原理
python web項(xiàng)目的部署的基本原理,是基于一種WSGI的框架協(xié)議。
WSGI協(xié)議主要包括Web服務(wù)器和應(yīng)用服務(wù)器兩部分。
(1)Web服務(wù)器:即HTTP服務(wù)器,按照HTTP接受用戶(hù)HTTP請(qǐng)求并提供并發(fā)訪問(wèn),調(diào)用Web應(yīng)用處理業(yè)務(wù)邏輯。
(2)Python Web應(yīng)用:應(yīng)用程序接受由服務(wù)器轉(zhuǎn)發(fā)的request,處理對(duì)應(yīng)的請(qǐng)求,并將處理結(jié)果返回服務(wù)器。
本文章采用IIS+Django的方式構(gòu)建和部署Web項(xiàng)目。

二、準(zhǔn)備部署環(huán)境
(1)cmd終端輸入:
pip freeze>requirements.txt //搜集python依賴(lài)包及對(duì)應(yīng)版本號(hào),生成txt文件
(2)在需要部署項(xiàng)目的服務(wù)器上安裝依賴(lài)包(pip)
pip install -r requirements.txt //文件requirements.txt為上一步cmd命令中生成
這是我自己的python依賴(lài)包:(依自己需求安裝依賴(lài)包)

三、安裝和配置IIS
打開(kāi)windows的“控制面板”→“程序和功能”→“打開(kāi)或關(guān)閉Windows功能”,找到Internet Information Services(Internet 信息服務(wù)),按照下圖進(jìn)行勾選。

四、開(kāi)放端口
我將自己web應(yīng)用訪問(wèn)端口設(shè)置為了8001端口,設(shè)置步驟如下。
(1)打開(kāi)windows的“控制面板”→“系統(tǒng)和安全”→“Windows Defender防火墻”,單機(jī)進(jìn)入防火墻配置界面。然后界面左側(cè)進(jìn)入高級(jí)設(shè)置。

(2)進(jìn)入高級(jí)安全Windows Defender防火墻配置界面,選中左側(cè)“入站規(guī)則”欄目,在選中右側(cè)操作欄的“新建規(guī)則”選項(xiàng)。彈出的向?qū)е羞x擇“端口(o)”。

(3)點(diǎn)擊下一步,輸入自己要設(shè)的端口號(hào)(我設(shè)置的8001),然后一直點(diǎn)下一步,命名規(guī)則,完成。就可以在入站規(guī)則看到這個(gè)規(guī)則。

(4)在瀏覽器地址輸入localhost訪問(wèn)IIS測(cè)試,如果出現(xiàn)以下頁(yè)面,表示安裝成功

五、本地部署
(先放文件夾,需要注意的有,在項(xiàng)目根目錄和static文件夾中各有一個(gè)web.config文件。)


第四部分正文開(kāi)始:
(1)安裝python依賴(lài)包wfastcgi,并啟動(dòng)(需管理員權(quán)限)
pip install wfastcgi
//啟動(dòng)wfastcgi,, 停止命令為:wfastcgi-disable wfastcgi-enable
輸出:“python路徑” 和 “wfastcgi解釋器核心腳本路徑”,用"|"隔開(kāi)

已經(jīng)在配置提交路徑“MACHINE/WEBROOT/APPHOST”向“MACHINE/WEBROOT/APPHOST”的“system.webServer/fastCgi”節(jié)應(yīng)用了配置更改
"d:\python395\python.exe|d:\python395\lib\site-packages\wfastcgi.py" can now be used as a FastCGI script processor
(2)配置web.config文件
為了能夠讓IIS服務(wù)器準(zhǔn)確的運(yùn)行項(xiàng)目,需要配置和設(shè)定一些參數(shù),包括項(xiàng)目路徑、配置文件路徑、解析器等。在django項(xiàng)目文件中創(chuàng)建web.config文件(和manage.py在同一文件夾)。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="d:\python395\python.exe|d:\python395\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script"/>
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
<add key="PYTHONPATH" value="C:\Users\yangz\Desktop\ZC_System-V20.6_11-09\ZC_System-V20.6" />
<add key="DJANGO_SETTINGS_MODULE" value="ZC_System.settings" />
</appSettings>
</configuration>有三個(gè)參數(shù)需要注意:
1、scriptProcessor中冒號(hào)部分為前面對(duì)應(yīng)的Python和wfastcgi解釋器核心腳本路徑。
2、<add key="PYTHONPATH" value="C:\Users\yangz\Desktop\ZC_System-V20.6_11-09\ZC_System-V20.6" />, (這里跟manage.py同一目錄)
3、<add key="DJANGO_SETTINGS_MODULE" value="ZC_System.settings" />,這個(gè).settings文件一開(kāi)始我配置的時(shí)候也沒(méi)有,可以自己配置。沒(méi)有該文件的同學(xué)可以參考下面鏈接自行配置。
(3)靜態(tài)文件文件遷移
1、進(jìn)入到static文件夾中創(chuàng)建第二個(gè)個(gè)web.config文件。該文件用于將項(xiàng)目所有的靜態(tài)資源文件css,js,img等全部導(dǎo)入到根目錄下的static文件夾。方便服務(wù)器查找靜態(tài)文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
<handlers>
<remove name="Python FastCGI"/>
</handlers>
</system.webServer>
</configuration>2、打開(kāi)項(xiàng)目配置文件setting.py
將語(yǔ)句“STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]”替換為 “STATIC_BOOT = os.path.join(BASE_DIR, 'static')”。
//原語(yǔ)句注釋掉 # STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] //現(xiàn)語(yǔ)句 STATIC_BOOT = os.path.join(BASE_DIR, 'static')
cmd終端進(jìn)入django項(xiàng)目根目錄:執(zhí)行命令
python manage.py collectstatic
(4)IIS創(chuàng)建網(wǎng)站
“控制面板”→“系統(tǒng)和安全”→“管理工具”→“Internet Information Services (IIS)管理器”,打開(kāi)后左側(cè)上方選中網(wǎng)站欄目,右鍵選擇添加網(wǎng)站進(jìn)入配置。


此時(shí)配置完成:訪問(wèn)http://127.0.0.1:8001即可進(jìn)入web應(yīng)用。
六、問(wèn)題
(1)[Errno 13] Permission denied: 'C:\\Users\\yangz\\Desktop\\ZC_System-V20.6_11-09\\ZC_System-V20.6\\templates\\ShouYe\\Login.html'

解決方法:找到django項(xiàng)目文件夾,右鍵屬性,選擇安全,編輯用戶(hù)和組,添加用戶(hù)“Everyone”并選擇完全控制。選擇應(yīng)用。

(2)如果在根目錄中沒(méi)有****.settings問(wèn)件,會(huì)彈出缺少M(fèi)ODULE,
到此這篇關(guān)于windows系統(tǒng)IIS部署Django項(xiàng)目的實(shí)踐的文章就介紹到這了,更多相關(guān)IIS部署Django項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- WIN10使用IIS部署ftp服務(wù)器詳細(xì)教程
- windows?server?2008?R2中IIS?FTP安裝部署圖文教程
- Windows 2012/IIS8多網(wǎng)站用相同端口部署多張證書(shū)(SNI)
- win2008 IIS7無(wú)后綴URL部署問(wèn)題 MVC4 MVC URL映射
- windows2003 IIS6 部署MVC3和MVC4程序的方法
- win2003 sp2+iis 6.0上部署.net 2.0和.net 4.0網(wǎng)站的方法
- Windows Server 2022 IIS服務(wù)器部署(阿里云ECS服務(wù)器+IIS+PHP+Python+MySQL)
相關(guān)文章
python用TensorFlow做圖像識(shí)別的實(shí)現(xiàn)
這篇文章主要介紹了python用TensorFlow做圖像識(shí)別的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python Flask請(qǐng)求擴(kuò)展與中間件相關(guān)知識(shí)總結(jié)
今天帶大家學(xué)習(xí)的是關(guān)于Python Flask的相關(guān)知識(shí),文章圍繞著Flask請(qǐng)求擴(kuò)展與中間件的知識(shí)展開(kāi),文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06
基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的銀行轉(zhuǎn)賬操作
這篇文章主要介紹了基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的銀行轉(zhuǎn)賬操作的相關(guān)資料,需要的朋友可以參考下2016-03-03
通過(guò)代碼簡(jiǎn)單了解django model序列化作用
這篇文章主要介紹了通過(guò)代碼簡(jiǎn)單了解django model序列化作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python內(nèi)置函數(shù)globals()的實(shí)現(xiàn)代碼
本文主要介紹了python內(nèi)置函數(shù)globals()的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python PyQt5模塊實(shí)現(xiàn)窗口GUI界面代碼實(shí)例
這篇文章主要介紹了Python PyQt5模塊實(shí)現(xiàn)窗口GUI界面代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

