[CentOS Python系列] 六.阿里云搭建Django网站详解
本篇文章主要介紹講述部署阿里云服務(wù)器Django網(wǎng)站環(huán)境,并通過(guò)IP地址訪問(wèn)網(wǎng)頁(yè)的過(guò)程。寫(xiě)代碼過(guò)程中往往第一步需要解決的就是配置開(kāi)發(fā)環(huán)境,對(duì)于新手來(lái)說(shuō),這是非常頭疼的事情,而當(dāng)配置好之后或者對(duì)于老手來(lái)說(shuō),我們才能去實(shí)現(xiàn)理想的功能。基礎(chǔ)性文章,希望對(duì)您有所幫助,同時(shí)文章中存在錯(cuò)誤或不足之處,還請(qǐng)海涵~
同時(shí)推薦前面作者另外三個(gè)Python系列文章。
從2014年開(kāi)始,作者主要寫(xiě)了三個(gè)Python系列文章,分別是基礎(chǔ)知識(shí)、網(wǎng)絡(luò)爬蟲(chóng)和數(shù)據(jù)分析。
- Python基礎(chǔ)知識(shí)系列:Pythonj基礎(chǔ)知識(shí)學(xué)習(xí)與提升
- Python網(wǎng)絡(luò)爬蟲(chóng)系列:Python爬蟲(chóng)之Selenium+Phantomjs+CasperJS
- Python數(shù)據(jù)分析系列:知識(shí)圖譜、web數(shù)據(jù)挖掘及NLP
??
系列文章:
[CentOS Python系列] 一.阿里云服務(wù)器安裝部署及第一個(gè)Python爬蟲(chóng)代碼實(shí)現(xiàn)
[CentOS Python系列] 二.pscp上傳下載服務(wù)器文件及phantomjs安裝詳解
[CentOS Python系列] 三.阿里云MySQL數(shù)據(jù)庫(kù)開(kāi)啟配置及SQL語(yǔ)句基礎(chǔ)知識(shí)
[CentOS Python系列] 四.阿里云服務(wù)器CentOS連接遠(yuǎn)程MySQL數(shù)據(jù)庫(kù)及pymsql
[CentOS Python系列] 五.阿里云部署web環(huán)境及通過(guò)IP地址訪問(wèn)服務(wù)器網(wǎng)頁(yè)
一. 創(chuàng)建第一個(gè)Django網(wǎng)站
首先打開(kāi)Putty軟件,填寫(xiě)遠(yuǎn)程IP地址“39.107.105.166”,然后root用戶登錄,如下圖所示。
輸入"pip list"指令可以看到已經(jīng)安裝的Django 1.10.6版本,如果您的系統(tǒng)沒(méi)有安裝,則使用pip安裝。
第一步 創(chuàng)建Django項(xiàng)目Yangxz
命令:django-admin.py startproject Yangxz
創(chuàng)建Yangxz網(wǎng)站工程,同時(shí)使用ls查看工程中所包括的內(nèi)容,如下圖所示。
參考:[python網(wǎng)站開(kāi)發(fā)] 一.Django入門知識(shí)及創(chuàng)建第一個(gè)網(wǎng)站
第二步 啟動(dòng)項(xiàng)目服務(wù)
命令:python manage.py runserver 8090
開(kāi)啟8090端口號(hào),但是報(bào)錯(cuò)如下圖所示,它提示我們還有配置沒(méi)有完成,需要我們?cè)倥渲靡幌隆?br />
第三步 解決上述錯(cuò)誤
命令:python manage.py migrate
migrate可以讓我們?cè)谛薷腗odel后可以在不影響現(xiàn)有數(shù)據(jù)的前提下重建表結(jié)構(gòu)。
這時(shí)你會(huì)發(fā)現(xiàn)在上一層的hello目錄下面多了一個(gè)文件dg.sqlite3,此時(shí)再調(diào)用“python manage.py runserver 8090”命令開(kāi)啟8090端口則成功,如下圖所示。
此時(shí),我們通過(guò)“http://39.107.105.166:8090/”訪問(wèn)網(wǎng)站卻無(wú)法訪問(wèn),如下圖所示。
二. 配置服務(wù)端口號(hào)
2.輸入字符“i”,進(jìn)入編輯模式(Insert)
3.加入如下代碼,核心:?-I INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
3.輸入“:wq!”保存并退出
4.重啟防火墻:service iptables restart
注意,開(kāi)放的端口一定要添加到 REJECT 之前。同時(shí),有的教程會(huì)讓你臨時(shí)關(guān)閉防火墻(如果不關(guān)閉,則只能本機(jī)訪問(wèn)apache服務(wù)),service iptables stop,但作者更推薦重啟防火墻即可。
三. 配置阿里云端口號(hào)
如果您還是無(wú)法訪問(wèn)如下圖所示,則需要設(shè)置阿里云的安全組規(guī)則,而網(wǎng)上更多的資料忽略了該步驟。下面進(jìn)行簡(jiǎn)單敘述:
第一步:打開(kāi)阿里云服務(wù)器管理控制臺(tái)頁(yè)面,點(diǎn)擊“控制臺(tái)”按鈕
第二步:在彈出的頁(yè)面中,選擇“云服務(wù)器ECS”,然后點(diǎn)擊我們運(yùn)行中的服務(wù)器
第三步:在彈出如下界面中點(diǎn)擊“更多”,選擇低端的“安全組配置”
第四步:在“本實(shí)例安全組”界面選擇“配置規(guī)則”。
第五步:點(diǎn)擊“添加安全組規(guī)則”。
第六步:在“添加安全組規(guī)則”中選擇自定義TCP協(xié)議,端口號(hào)為8090端口,授權(quán)對(duì)象為“0.0.0.0/0”,表示允許任意公網(wǎng)IP登錄。
設(shè)置成功如下圖所示:
第七步:輸入命令“python manage.py runserver 0.0.0.0:8090 &”,最后的 & 符號(hào)表示在后臺(tái)運(yùn)行該進(jìn)程。這里的IP地址如果用公網(wǎng)IP會(huì)運(yùn)行不了,而用0.0.0.0則外網(wǎng)和127.0.0.1都能訪問(wèn)。
重點(diǎn)命令:python manage.py runserver 0.0.0.0:8090 &
而此時(shí)會(huì)報(bào)錯(cuò)如下所示,讓我們修改Yangxz.settings文件。
第八步:修改Yangxz.settings.py文件,在 ALLOWED_HOSTS=['*'] 中增加 *。
命令:vim settings.py
第九步:最后再次輸入命令“python manage.py runserver 0.0.0.0:8090 &”安裝服務(wù)。
此時(shí)我們?cè)L問(wèn)地址“http://39.107.105.166:8090/”能成功訪問(wèn),表示我們的Django安裝成。
四. 修改Django網(wǎng)站源碼
Django網(wǎng)站目錄如下:
說(shuō)明如下:
- Yangxz: 項(xiàng)目的容器。
- manage.py:?Django管理主程序。一個(gè)實(shí)用的命令行工具,可讓你以各種方式與該 Django 項(xiàng)目進(jìn)行交互。
- __init__.py: 空文件。告訴Python該目錄是一個(gè)Python包。
- settings.py:?主配置文件。該Django項(xiàng)目的設(shè)置/配置。
- urls.py:?URL路由文件。Django項(xiàng)目的URL聲明,一份由Django驅(qū)動(dòng)的網(wǎng)站"目錄"。
- wsgi.py:?網(wǎng)絡(luò)通信接口。一個(gè)WSGI兼容的Web服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目。
第一步 創(chuàng)建視圖views.py文件
在Yangxz目錄下創(chuàng)建一個(gè)views.py文件,用于書(shū)寫(xiě)業(yè)務(wù)處理邏輯。
命令:touch views.py
? ? ? ? ? vim views.py
#-*- coding:utf-8 -*- from django.http import HttpResponsedef hello(request):return HttpResponse("Hello CSDN, My name is Eastmount!")
自定義hello方法,參數(shù)request固定的,用于返回HttpResponse。
第二步 配置URL
修改urls.py文件內(nèi)容,將訪問(wèn)的內(nèi)容改為views.py文件中的hello函數(shù)。
命令:vim urls.py
第三步 網(wǎng)站展示
代碼需要導(dǎo)入views文件內(nèi)容,才能引用hello方法。views.py視圖文件在編譯后會(huì)產(chǎn)生對(duì)應(yīng)的views.pyc文件。然后啟動(dòng)Django服務(wù)器,在瀏覽器中訪問(wèn)即可,如下圖所示:
如果沒(méi)有該資源也不會(huì)報(bào)錯(cuò)“無(wú)法訪問(wèn)”,而是提示無(wú)法找到該資源,如下所示。
最后希望這篇文章對(duì)您有所幫助,在配置Django時(shí)需要注意以下幾個(gè)常見(jiàn)錯(cuò)誤:
? ? 1.需要調(diào)用 "vi /etc/sysconfig/iptables" 增加服務(wù)端口號(hào);
? ? 2.需要在阿里云管理安全組中增加8090端口,如果未配置會(huì)提示無(wú)法訪問(wèn);
? ? 3.通過(guò)“python manage.py runserver 0.0.0.0:8090 &”開(kāi)啟服務(wù)端口,注意&符號(hào);
? ? 4.配置py文件時(shí),需要先導(dǎo)入再使用,如“from Yangxz.views import *”;
? ? 5.注意在Yangxz.settings.py文件中修改代碼 "ALLOWED_HOSTS=['*']",增加 *;
? ? 6.最后訪問(wèn)的時(shí)候注意資源及文件名是否正確即可。
希望文章對(duì)你有所幫,如果文章中存在不足或錯(cuò)誤的地方,還請(qǐng)海涵~
(By:Eastmount 2018-03-13 下午6點(diǎn) ?http://blog.csdn.net/eastmount/?)
總結(jié)
以上是生活随笔為你收集整理的[CentOS Python系列] 六.阿里云搭建Django网站详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [python爬虫] Beautiful
- 下一篇: [Python微信开发] 一.itcha