python项目如何上线_django项目部署上线(示例代码)
前言
完善的django項目上線,有很多種上線的方法,比如apache, uwsgi, nginx等。這里只介紹2種,一種是django自帶的,另外一種則是nginx + uwsgi完成介紹。這里的系統(tǒng)環(huán)境采用的是ubantu系統(tǒng), python環(huán)境采用的是python3, django環(huán)境采用1.11
一、自帶的部署功能
數(shù)據(jù)庫遷移:
如果django項目中的數(shù)據(jù)是在本地的mysql中,需要將它的數(shù)據(jù)遷移到遠程連接的數(shù)據(jù)庫中。使用navicat操作, 在工具下拉列表中有一個數(shù)據(jù)傳輸按鈕
image.png
進入后,配置好,點擊下一步就好
image.png
1. 環(huán)境配置
更新安裝包: sudo apt update
下載mysql : apt install mysql-server mysql-client
2. 設(shè)置遠程訪問mysql:
(1) 查找 mysql.conf, 一般在/etc/mysql/mysql.conf.d目錄下
find / -name mysql.cnf
(2)注釋掉mysql.cnf文件中bind.conf.d,使外網(wǎng)也可以訪問數(shù)據(jù)庫
vim /etc/mysql/mysql.conf.d/mysqld.cnf
QQ圖片20180512085640.png
(3)設(shè)置mysql數(shù)據(jù)庫的用戶密碼
設(shè)置: GRANT ALL PRIVILEGES ON . TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;
刷新操作:flush privileges;
3. 修改django中的配置文件
修改settings.py
(1) 設(shè)置DEBUG=FALSE, ALLOWED_HOST = [‘‘]
image.png
如果上線的時候出現(xiàn)500,502錯誤等,可以將DEBUG=False設(shè)置為DEBUG=True,這時候你就可以在瀏覽器中看到具體的錯誤,然后進行調(diào)試
(2)
靜態(tài)文件的STARC的路徑配置
STATIC_ROOT = os.path.join(BASE_DIR, ‘static‘)
修改工程urls.py配置
導(dǎo)入serve包:
from django.views.static import serve
在路由中加入static的路由地址:
url(r‘^static/(?P.)$‘, serve, {"document_root": settings.STATIC_ROOT})
image.png
4.修改首頁的訪問地址
在工程urls.py里部署首頁訪問的地址: views.home是自己設(shè)置的一個方法,是路由指向的地址
url(r‘^$‘, views.home)
5. 安裝pip3, 使用pip3來安裝必備的數(shù)據(jù)庫
安裝pip3 :up主在這里遇到過一個bug,安裝不上庫文件,這時候你需要將pip3更新到最新的版本
apt install python3-pip
安裝必備庫:
pip3 install django
pip3 install pymysql
pip3 install pillow
6. 查看進程:
看看端口啥的, 如果80端口被占用了,下面可以更換到其他端口,也可以直接kill -9 掉占用端口的程序
netstat -lntp
7. 啟動項目
進入manage.py文件目錄下:
python3 manage.py runserver 0.0.0.0:8000
二、使用nginx+uwsgi部署
1.nagin和uwsgi介紹
關(guān)于nginx和uwsgi與django的聯(lián)系,有一篇博文講得簡單明了
https://blog.csdn.net/u014761344/article/details/40146597
(1)nginx:
nginx概念:
Nginx是一款高性能的http 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。
nginx應(yīng)用場景:
1、 http服務(wù)器。Nginx是一個http服務(wù)可以獨立提供http服務(wù)。可以做網(wǎng)頁靜態(tài)服務(wù)器。
2、 虛擬主機。可以實現(xiàn)在一臺服務(wù)器虛擬出多個網(wǎng)站。例如個人網(wǎng)站使用的虛擬主機。
基于端口的,不同的端口
基于域名的,不同域名
3、 反向代理,負載均衡。當(dāng)網(wǎng)站的訪問量達到一定程度后,單臺服務(wù)器不能滿足用戶的請求時,需要用多臺服務(wù)器集群可以使用nginx做反向代理。并且多臺服務(wù)器可以平均分擔(dān)負載,不會因為某臺服務(wù)器負載高宕機而某臺服務(wù)器閑置的情況。
(2)uwsgi
uwsgi概念:
uWSGI實現(xiàn)了WSGI的所有接口,是一個快速、自我修復(fù)、開發(fā)人員和系統(tǒng)管理員友好的服務(wù)器
2.安裝nginx
nginx啟動后,可以在公網(wǎng)的ip地址上看到welcome to nginx
sudo apt-get install nginx
3.查看nginx的狀態(tài)
systemctl status nginx 查看nginx的狀態(tài)
system start/stop/enable/disable nginx 啟動/關(guān)閉/設(shè)置開機啟動/禁止開機啟動
service nginx status/stop/restart/start 查看狀態(tài)/停止/重啟/開啟 ngnix
安裝完成后,如果不能啟動nginx,可以使用 ps -ef | grep nginx 查看進程,殺掉全部的nginx進程,再重新啟動nginx
4.安裝uwsgi
pip install uwsgi
5.在nginx的配置文件中加載自定義的nginx的配置文件
up主這里使用自己的.conf文件放在 /home/app/conf/的,這里建議大家建立一個統(tǒng)一的文件夾來管理conf文件
進入nginx的配置文件:
vim /etc/nginx/nginx.conf
修改文件:增加 include /home/app/conf/.conf;
QQ圖片20180512095927.png
6. 配置自定的nginx文件:
up主建議每一個項目都單獨建立一個conf文件
找到自己創(chuàng)建的conf文件:
vim /home/app/conf/axfnginx.conf
配置:
server {
listen 80;
server_name 47.92.164.198 localhost;
access_log /home/app/log/access.log;
error_log /home/app/log/error.log;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8890;
}
location /static/ {
alias /home/app/day11axf0/static/;
expires 30d;
}
}
image.png
7.配置uwsgi
up主是將uwsgi.ini文件與conf文件放在一起的
pythonpath為工程文件目錄
scoket要與nginx中的完全相同
logto為保存日志文件的地方
image.png
nginx和uwsgi還可以配置更多的東西,這里配置的都是最簡單需要的內(nèi)容
8.啟動項目
進入uwsgi.ini文件目錄中:
uwsgi --ini uwsgi.ini
9.部署完成
python學(xué)習(xí)交流群:125240963
總結(jié)
以上是生活随笔為你收集整理的python项目如何上线_django项目部署上线(示例代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: r 函数返回多个值_第四讲 R描述性统计
- 下一篇: 电子科技大学2019年计算机复试分数线,