windows系統(tǒng)IIS部署Django項(xiàng)目的實(shí)踐
采用IIS服務(wù)器部署相比django提供的開發(fā)者服務(wù)器具有更好的并發(fā)訪問能力,性能更加穩(wěn)定。
一、Python WSGI部署原理
python web項(xiàng)目的部署的基本原理,是基于一種WSGI的框架協(xié)議。
WSGI協(xié)議主要包括Web服務(wù)器和應(yīng)用服務(wù)器兩部分。
(1)Web服務(wù)器:即HTTP服務(wù)器,按照HTTP接受用戶HTTP請求并提供并發(fā)訪問,調(diào)用Web應(yīng)用處理業(yè)務(wù)邏輯。
(2)Python Web應(yīng)用:應(yīng)用程序接受由服務(wù)器轉(zhuǎn)發(fā)的request,處理對應(yīng)的請求,并將處理結(jié)果返回服務(wù)器。
本文章采用IIS+Django的方式構(gòu)建和部署Web項(xiàng)目。
二、準(zhǔn)備部署環(huán)境
(1)cmd終端輸入:
pip freeze>requirements.txt //搜集python依賴包及對應(yīng)版本號,生成txt文件
(2)在需要部署項(xiàng)目的服務(wù)器上安裝依賴包(pip)
pip install -r requirements.txt //文件requirements.txt為上一步cmd命令中生成
這是我自己的python依賴包:(依自己需求安裝依賴包)
三、安裝和配置IIS
打開windows的“控制面板”→“程序和功能”→“打開或關(guān)閉Windows功能”,找到Internet Information Services(Internet 信息服務(wù)),按照下圖進(jìn)行勾選。
四、開放端口
我將自己web應(yīng)用訪問端口設(shè)置為了8001端口,設(shè)置步驟如下。
(1)打開windows的“控制面板”→“系統(tǒng)和安全”→“Windows Defender防火墻”,單機(jī)進(jìn)入防火墻配置界面。然后界面左側(cè)進(jìn)入高級設(shè)置。
(2)進(jìn)入高級安全Windows Defender防火墻配置界面,選中左側(cè)“入站規(guī)則”欄目,在選中右側(cè)操作欄的“新建規(guī)則”選項(xiàng)。彈出的向?qū)е羞x擇“端口(o)”。
(3)點(diǎn)擊下一步,輸入自己要設(shè)的端口號(我設(shè)置的8001),然后一直點(diǎn)下一步,命名規(guī)則,完成。就可以在入站規(guī)則看到這個(gè)規(guī)則。
(4)在瀏覽器地址輸入localhost訪問IIS測試,如果出現(xiàn)以下頁面,表示安裝成功
五、本地部署
(先放文件夾,需要注意的有,在項(xiàng)目根目錄和static文件夾中各有一個(gè)web.config文件。)
第四部分正文開始:
(1)安裝python依賴包wfastcgi,并啟動(dòng)(需管理員權(quán)限)
pip install wfastcgi
//啟動(dòng)wfastcgi,, 停止命令為:wfastcgi-disable wfastcgi-enable
輸出:“python路徑” 和 “wfastcgi解釋器核心腳本路徑”,用"|"隔開
已經(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中冒號部分為前面對應(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文件一開始我配置的時(shí)候也沒有,可以自己配置。沒有該文件的同學(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、打開項(xiàng)目配置文件setting.py
將語句“STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]”替換為 “STATIC_BOOT = os.path.join(BASE_DIR, 'static')”。
//原語句注釋掉 # STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] //現(xiàn)語句 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)管理器”,打開后左側(cè)上方選中網(wǎng)站欄目,右鍵選擇添加網(wǎng)站進(jìn)入配置。
此時(shí)配置完成:訪問http://127.0.0.1:8001即可進(jìn)入web應(yīng)用。
六、問題
(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)目文件夾,右鍵屬性,選擇安全,編輯用戶和組,添加用戶“Everyone”并選擇完全控制。選擇應(yīng)用。
(2)如果在根目錄中沒有****.settings問件,會彈出缺少M(fèi)ODULE,
到此這篇關(guān)于windows系統(tǒng)IIS部署Django項(xiàng)目的實(shí)踐的文章就介紹到這了,更多相關(guān)IIS部署Django項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python單例模式的四種創(chuàng)建方式實(shí)例解析
這篇文章主要介紹了Python單例模式的四種創(chuàng)建方式實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03sklearn和keras的數(shù)據(jù)切分與交叉驗(yàn)證的實(shí)例詳解
這篇文章主要介紹了sklearn和keras的數(shù)據(jù)切分與交叉驗(yàn)證的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Django實(shí)現(xiàn)內(nèi)容緩存實(shí)例方法
在本篇文章里小編給大家整理了關(guān)于Django實(shí)現(xiàn)內(nèi)容緩存實(shí)例方法,有需要的朋友們可以跟著學(xué)習(xí)下。2020-06-06Python靜態(tài)類型檢查新工具之pyright 使用指南
這篇文章主要介紹了Python靜態(tài)類型檢查新工具之pyright 使用指南,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04Python3.5基礎(chǔ)之變量、數(shù)據(jù)結(jié)構(gòu)、條件和循環(huán)語句、break與continue語句實(shí)例詳解
這篇文章主要介紹了Python3.5基礎(chǔ)之變量、數(shù)據(jù)結(jié)構(gòu)、條件和循環(huán)語句、break與continue語句,結(jié)合實(shí)例形式詳細(xì)分析Python3.5編程入門相關(guān)的變量、數(shù)據(jù)結(jié)構(gòu)、常用條件與循環(huán)語句操作技巧及注意事項(xiàng),需要的朋友可以參考下2019-04-04python實(shí)現(xiàn)余弦相似度文本比較的示例
這篇文章主要介紹了python實(shí)現(xiàn)余弦相似度文本比較的示例,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05Python實(shí)現(xiàn)對圖像加噪(高斯噪聲 椒鹽噪聲)
這篇文章主要介紹了展示通過Python給圖像疊加不同等級的椒鹽噪聲和高斯噪聲的代碼,相應(yīng)的疊加噪聲的已編為對應(yīng)的類,可實(shí)例化使用。感興趣的同學(xué)可以看看2021-11-11