项目部署相关环境配置:https://blog.youkuaiyun.com/apollo_miracle/article/details/88062635
1 将项目上传服务器
系统:Ubuntu16.04
查看ubuntu版本:lsb_release -a
查看ubuntu位数:uname -a
注:一般64的系统都会带有X86_64 ,而32位的都不带,一般是i386或者i686等
更换软件源
Ubuntu16.04 更换apt软件源:https://blog.youkuaiyun.com/apollo_miracle/article/details/109449229
Ubuntu16.04 更换pip3软件源:https://blog.youkuaiyun.com/apollo_miracle/article/details/109961369
安装软件包
默认安装有 python2.7 和 python3.5
查看python位数
# 进入python环境,导包
import platform
platform.architecture()
# ('64bit', 'ELF')
pip3命令
sudo apt install python3-pip
vim命令
sudo apt-get install vim
mysql命令
sudo apt-get install mysql-server
sudo apt-get install libmysqlclient-dev
启动和关闭mysql服务器:
service mysql start
service mysql stop
安装虚拟环境
Ubuntu16.04下创建python的虚拟环境:https://blog.youkuaiyun.com/apollo_miracle/article/details/109962017
创建python3.5以上版本的虚拟环境:https://blog.youkuaiyun.com/apollo_miracle/article/details/109967748
安装依赖包
外网
可以连接外网的情况下,最好把使用的依赖包导出*.txt文件一个文件中,命令如下:
pip freeze > requirements.txt
安装命令为:
pip install -r requirements.txt
内网
如果是内网(无法连接外网),最好提前准备好所有的依赖安装包
在相同的环境下,使用以下命令进行快速下载
pip download -r requirements.txt
2 项目数据库迁移
忘记密码可以进行删除,重装:Ubuntu16.04彻底卸载MySQL:https://www.cnblogs.com/mjhblog/p/10499772.html
flask数据库迁移问题解决:https://blog.youkuaiyun.com/apollo_miracle/article/details/110009326
2.1 创建数据库
create database database_name charset=utf8;
2.2 数据库迁移
- 需要在manage.py中导入models
:
form info import models,然后执行以下命令
python manage.py db init
python manage.py db migrate -m"initial"
python manage.py db upgrade
2.3 导入初始数据
执行导入初始分类的 SQL 语句
source 路径/info.sql
2.4 Flask-SQLAlchemy安装及设置
- SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升
- SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的flask扩展。
- 文档地址:http://docs.jinkan.org/docs/flask-sqlalchemy
- 安装 flask-sqlalchemy
pip install flask-sqlalchemy
- 如果连接的是 mysql 数据库,需要安装 mysqldb
pip install flask-mysqldb
- 在安装flask-mysqldb的时候可能会报错:mysql_config not found
- 解决如下,输入以下代码 :
sudo aptitude install libmysqlclient-dev
下载并配置nginx
作用
- 采用 C 语言编写
- 实现分流、转发、负载均衡
相关操作
- 安装
sudo apt-get install nginx
配置文件
- 编辑文件:/etc/nginx/sites-available/default
# 如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass
upstream flask {
server 127.0.0.1:5000;
server 127.0.0.1:5001;
}
server {
# 监听80端口
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# 请求转发到gunicorn服务器
proxy_pass http://127.0.0.1:5000;
# 请求转发到多个gunicorn服务器
# proxy_pass http://flask;
# 设置请求头,并将头信息传递给服务器端
proxy_set_header Host $host;
# 设置请求头,传递原始请求ip给 gunicorn 服务器
proxy_set_header X-Real-IP $remote_addr;
}
}
- 运行及停止
/etc/init.d/nginx start #启动
/etc/init.d/nginx stop #停止
这时候在浏览器地址栏输入服务器的 ip 地址,看到下面的页面就表明 Nginx 已经启动了:
安装 uWSGI
在安装 uWSGI 前,需要解决 uWSGI 的依赖问题,因为 uWSGI 是一个 C 语言写的应用,所以我们需要 C 编译器,以及 python 开发相关组件:
sudo apt-get install build-essential python-dev
sudo pip install uwsgi
到这,我们就安装好了 uWSGI