十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
在本地運(yùn)行django應(yīng)用相對(duì)來(lái)說(shuō)還是挺方便的,使用自帶的runserver啟動(dòng)即可。如果在生產(chǎn)環(huán)境部署django,就要多考慮一些問(wèn)題了。比如靜態(tài)文件處理,安全,效率等等

在網(wǎng)上找到了不錯(cuò)的部署的教程,講解的還是很詳細(xì)的,我就不重新再整理了。
五步教你實(shí)現(xiàn)使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中國(guó)社區(qū)
五步教你實(shí)現(xiàn)使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中國(guó)社區(qū)
但是作為記錄,我還是要記錄下部署中遇到的問(wèn)題:
(一)解決Django生產(chǎn)環(huán)境部署的靜態(tài)文件丟失問(wèn)題
有些時(shí)候,把程序放在生產(chǎn)環(huán)境,不過(guò)出于一些原因還沒(méi)有配置nginx等環(huán)境,關(guān)閉了Debug,想看看網(wǎng)站,這時(shí)會(huì)出現(xiàn)靜態(tài)文件無(wú)法訪問(wèn),界面一塌糊涂的情況。使用如下命令即可成功使用靜態(tài)文件
python manage.py runserver 0.0.0.0:8000 --insecure(二)部署生產(chǎn)環(huán)境之前的準(zhǔn)備
正如(一)中的方法只是測(cè)試時(shí)使用,如何處理靜態(tài)文件,其實(shí)需要交給nginx等這樣的高效軟件來(lái)完成,所以在配置之前,先使用
python manage.py collectstatic用來(lái)收集靜態(tài)文件到static文件夾,然后就可以參照上面的教程,通過(guò)nginx來(lái)分配使用。
另外,推薦使用lnmp一鍵安裝腳本,這樣nginx,mysql等很多東西就不用設(shè)置了。
(三)重啟uwsgi腳本
在上面的教程中提到的uwsgi,每一次修改程序后都應(yīng)該重啟uwsgi來(lái)使修改生效。在manage.py同級(jí)目錄新建restart.sh腳本,內(nèi)容如下:
killall uwsgi
uwsgi -x django_socket.xml(這個(gè)django_socket.xml根據(jù)你起得名字替換)
—————-
這之后就是關(guān)于pythonic程序的一些修改:
這個(gè)程序是github上的一個(gè)開(kāi)源django論壇程序。還是很不錯(cuò)的。
不過(guò)github上的版本還是有點(diǎn)點(diǎn)問(wèn)題的。已經(jīng)Fork了,但懶的忙的沒(méi)時(shí)間去修改,就先在博客記錄下。
(1)settings.py中應(yīng)添加DOMAIN = ‘127.0.0.1’ (根據(jù)實(shí)際填寫IP或域名)
(2)LOGO的路徑問(wèn)題,修改templates目錄下的base.html模板,添加static
(3)注冊(cè)APP問(wèn)題。
在accounts和people模塊中的URL配置中,把a(bǔ)ccounts.views改為apps.accounts.views

OK,修改完畢。
雖然還有一些小問(wèn)題,到時(shí)再讀讀源碼估計(jì)就可以解決了。
其實(shí)安全問(wèn)題還是比較重要的,admin直接暴露出來(lái)不是很好,接下來(lái)研究研究,看看是更改登陸admin的地址還是禁止IP段。
嗯,希望一切順利~