python项目如何上线_django项目部署上线(示例代码)

前言

完善的django项目上线,有很多种上线的方法,比如apache, uwsgi, nginx等。这里只介绍2种,一种是django自带的,另外一种则是nginx + uwsgi完成介绍。这里的系统环境采用的是ubantu系统, python环境采用的是python3, django环境采用1.11

一、自带的部署功能

数据库迁移:

如果django项目中的数据是在本地的mysql中,需要将它的数据迁移到远程连接的数据库中。使用navicat操作, 在工具下拉列表中有一个数据传输按钮

image.png

进入后,配置好,点击下一步就好

image.png

1. 环境配置

更新安装包: sudo apt update

下载mysql : apt install mysql-server mysql-client

2. 设置远程访问mysql:

(1) 查找 mysql.conf, 一般在/etc/mysql/mysql.conf.d目录下

find / -name mysql.cnf

(2)注释掉mysql.cnf文件中bind.conf.d,使外网也可以访问数据库

vim /etc/mysql/mysql.conf.d/mysqld.cnf

QQ图片20180512085640.png

(3)设置mysql数据库的用户密码

设置: GRANT ALL PRIVILEGES ON . TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;

刷新操作:flush privileges;

3. 修改django中的配置文件

修改settings.py

(1) 设置DEBUG=FALSE, ALLOWED_HOST = [‘‘]

image.png

如果上线的时候出现500,502错误等,可以将DEBUG=False设置为DEBUG=True,这时候你就可以在浏览器中看到具体的错误,然后进行调试

(2)

静态文件的STARC的路径配置

STATIC_ROOT = os.path.join(BASE_DIR, ‘static‘)

![image.png](https://upload-images.jianshu.io/upload_images/10914545-f44323417d3ce602.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

(3)修改工程urls.py配置

导入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是自己设置的一个方法,是路由指向的地址

url(r‘^$‘, views.home)

5. 安装pip3, 使用pip3来安装必备的数据库

安装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介绍

关于nginx和uwsgi与django的联系,有一篇博文讲得简单明了

https://blog.csdn.net/u014761344/article/details/40146597

(1)nginx:

nginx概念:

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

nginx应用场景:

1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

基于端口的,不同的端口

基于域名的,不同域名

3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

(2)uwsgi

uwsgi概念:

uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器

2.安装nginx

nginx启动后,可以在公网的ip地址上看到welcome to nginx

sudo apt-get install nginx

3.查看nginx的状态

systemctl status nginx 查看nginx的状态

system start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动

service nginx status/stop/restart/start 查看状态/停止/重启/开启 ngnix

安装完成后,如果不能启动nginx,可以使用 ps -ef | grep nginx 查看进程,杀掉全部的nginx进程,再重新启动nginx

4.安装uwsgi

pip install uwsgi

5.在nginx的配置文件中加载自定义的nginx的配置文件

up主这里使用自己的.conf文件放在 /home/app/conf/的,这里建议大家建立一个统一的文件夹来管理conf文件

进入nginx的配置文件:

vim /etc/nginx/nginx.conf

修改文件:增加 include /home/app/conf/.conf;

QQ图片20180512095927.png

6. 配置自定的nginx文件:

up主建议每一个项目都单独建立一个conf文件

找到自己创建的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还可以配置更多的东西,这里配置的都是最简单需要的内容

8.启动项目

进入uwsgi.ini文件目录中:

uwsgi --ini uwsgi.ini

9.部署完成

python学习交流群:125240963

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何检查python的库是否安装成功_如何测试redis是否安装成功

下载Redis 下载好后 复制所在位置 cd 跳到 D:\Java\64bit 图中的目录位置 这样便启动成功了。 设置redis密码的话要 到redis.conf中找到 requirepass关键字 设置密码为123456 redis-cli.exe 进入客户端 然后 auth 123456 注释: auth 密码 set 对象名 [a] 值[123] ge…

第三方类库的学习心态

我们需要牢牢的记住:所有的第三方库能实现的功能,我们使用原生的API只要花时间和精力也能实现,但是可能会出现很多的bug而且会花费较多的时间和精力,而且性能也不一定很好,第三方的库会帮我们封装底层的一些代码&#…

HTTP返回码

响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。响应码分五种类型,由它们的第一位数字表示:1.1xx:信息,请求收到,继续处理2.2xx:成功,行为被成功地接受、理…

oracle树结构统计,ORACLE 递归树型结构统计汇总

区域平台统计报表,省--市--区 汇总,还有各级医院,汇总与列表要在一个列表显示。用到ORACLE 会话时临时表 GLOBAL TEMPORARY TABLE ON COMMIT PRESERVE ROWS;递归树: START WITH P.PARENTORG ‘ROOT‘CONNECT BY PRIOR P.ORG…

我们真的需要使用RxJava+Retrofit吗?

原文:http://blog.csdn.net/TOYOTA11/article/details/53454925 点击阅读原文 RxJava详解:http://gank.io/post/560e15be2dca930e00da1083 Retrofit详解:http://www.tuicool.com/articles/AveimyQ --------------------------------------…

python ide如何运行_ide - 如何运行Python程序?

你问我很高兴! 我正在努力在我们的wikibook中解释这个问题(这显然是不完整的)。 我们正在与Python新手合作,并且必须通过您正在询问的内容帮助我们! Windows中的命令行Python: 使用编辑器中的“保存”或“另…

逻辑回归算法_算法逻辑回归

logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。以胃癌病情分析为例&a…

使用docker搭建wordpress网站

概述 使用docker的好处就是尽量减少了环境部署,可靠性强,容易维护,我使用docker搭建wordpress的主要目标有下面几个首先我重新生成数据库容器可以保证数据库数据不丢失,重新生成wordpress容器保证wordpress网站数据不丢失&#xf…

XUtils之注解机制详解

原文:http://blog.csdn.net/rain_butterfly/article/details/37931031 点击阅读原文 ------------------------------------------------------ 这篇文章说一下xUtils里面的注解原理。 先来看一下xUtils里面demo的代码: [java] view plaincopy print?…

oracle ko16mswin949,mysql字符集 - osc_wq7ij8li的个人空间 - OSCHINA - 中文开源技术交流社区...

恰当的字符集,畅快的体验!00、Oracle字符集Subsets and Supersets #子集与超集Table A-11 Subset-Superset PairsSubset(子集)Superset(超集)AR8ADOS710AR8ADOS710TAR8ADOS720AR8ADOS720TAR8ADOS720TAR8ADOS720AR8APTEC715AR8APTEC715TAR8ARABICMACTAR…

曼彻斯特编码_两种编码方式以及两种帧结构

一、不归零制编码(Non-Return to Zero)对于不归零制编码是最简单的一种编码方式,正电平代表1,负电平代表0。如下图:其实在不归零制编码中有一个很明显的缺陷,那就是它不是自同步码。对于上图,你知道它传输的数据是什么…

python用一行代码编写一个回声程序_使用Python的多回声测验

我在写一个程序来管理一个五问多的问题- 关于全球变暖的选择测验和计算数字 正确答案。 我首先创建了一本字典,比如:questions \ { "What is the global warming controversy about?": { "A": "the public debate over wheth…

iOS开发学习路线

iOS开发学习路线 前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程. 个人学习方法分享本文阅读建议 1.一定要辩证的看待本文. 2.本文主要是本人对iOS开发经验中总结的知识点 3.本…

Android快速开发框架XUtils

原文地址:http://blog.csdn.net/rain_butterfly/article/details/37812371 点击阅读原文 -------------------------------------------- https://github.com/wyouflf/xUtils https://github.com/wyouflf/xUtils3 XUtils是基于afinal开发的,比afina…

oracle查看序列数据语法,oracle查询各种数据字典的语法

ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化,体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数…

如何安装python3.8.1_python3.8.1 安装

Loading...请注意,本文编写于 217 天前,最后修改于 217 天前,其中某些信息可能已经过时。系统环境:centos 7 安装依赖项 bash yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-d…

明年新iphone使用增强版5nm芯片_苹果A15芯片或将采用台积电5nm+工艺!性能提升极强...

今年苹果的iPhone 12系列搭载的A14 仿生芯片是今年智能手机市场推出的第一款5nm工艺处理器,处理器的性能也是用户有目共睹的,相较于之前的芯片性能提升了一大截,有众多网友也表示:苹果芯片最大的敌人就是上一代的自己。当然&#…

php中dump怎么使用,php – 如何正确使用print_r或var_dump?

我在调试时经常使用以下代码段:echo "" . var_dump($var) . "";而且我发现我通常会得到一个很好的可读输出.但有时我却不这样做.这个例子我现在特别烦恼:$usernamexxxxxx;$passwordxxxxxx;$data_urlhttp://docs.tms.tribune.com/tec…

Spring Framework 5 中的新特性

https://www.ibm.com/developerworks/cn/java/j-whats-new-in-spring-framework-5-theedom/index.html Spring 5 于 2017 年 9 月发布了通用版本 (GA),它标志着自 2013 年 12 月以来第一个主要 Spring Framework 版本。它提供了一些人们期待已久的改进,还…

怎么计算一组数据的波动_税控盘数据和小规模增值税申报表计算结果不一致怎么办...

a公司为小规模纳税人,于2020年1月申报2019年第四季度增值税时,是按照金税盘的数据实际销售金额为562,563,13元,实际销售税额为16,876.87元填写小规模纳税人增值税申报表。申报成功后,税务系统却跳出比对异常,户管员要求…