flask|阿里云部署从入门到放弃

Posted 多德伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask|阿里云部署从入门到放弃相关的知识,希望对你有一定的参考价值。

你不一定要点蓝字关注我的


写在前面

西吧,跟师兄一块捣鼓了三个多小时,成功安装了Gunicorn、Supervisor模块,离成功一步之遥的时候,发现走不通,程序跑不起来,也许一开始就走错了,真的好麻烦啊~


终于在知乎找到一个另外版本的教程,希望可以走得通!

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 flask|阿里云部署从入门到放弃 flask|阿里云部署从入门到放弃 我发现网上还没完整详细版本的Flask 部署教程,而我在部署中遇到很多坑,所以在这里写下来,完整的教程以下是部署流程:

处理本地的代码

假设你已经完成了项目的开发,本地已经安装了git,那么首先将你的代码提交到git;

空服务器安装 pip
sudo apt-get install python3-pip
如果不行就 卸掉重新装
sudo apt-get remove python3-pip
sudo apt-get install python3-pip
#进项目根目录
pip freeze > requirements.txt  #导flask 全部包,方便新环境下一次性安装。
git init # 之前如果没有做,那么需要做
git add --all #提交所有修改后的文件
git remote add origin http:xxxx.git  #这一步如果之前没做,那么你需要做。
git commmit -w 'first commit'


安装mysql

现在进入服务器正式开始搭建环境,首先安装mysql.

新鲜出炉的阿里云需要更新下apt.
apt-get update
然后安装mysql, 注意一定记住root 密码,还要在配置文件中设置字符为UTF8!
sudo apt-get update
sudo apt-get install mysql-server
mysql_secure_installation


允许远程链接数据库
That is allowed by default on MySQL.


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
/etc/mysql/my.cnf

#bind-address = 127.0.0.1


增加新的数据库,注意名字和你项目的一样,
CREATE DATABASE xxx CHARACTER SET utf8 COLLATE utf8_general_ci;


安装虚拟环境 Vitualenv

pip install virtualenvwrapper #直接安装虚拟环境容器来顺便安装virtualenv
注意需要先修改环境变量。否则命名无法使用
vim ~/.bashrc   在最底部增加
#这是为了让 WORKON 命令能用。
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
别忘记重新加载 bash 配置文件 source ~/.bashrc


然后你需要用 mkvirtualenv xxx -p python3   #注意后面要跟上 -p python3,
  来创建一个叫xxx 的python 3虚拟环境
workon xxx #切换到你的虚拟环境


安装 Git 拿到全部源码

现在在服务器上安装git 拿到源码
apt install git
git init
git remote add origin http:xxx.git
git config credential.helper store  #保存git 密码
git pull origin master # 拿到全部源码

如果不小心改错了东西.就删掉本地的,再拉取一次
git reset --hard HEAD   #把指针移动到头部

git pull oschina master  #重新取得


正式部署源码

进去项目根目录:
pip install -r requirements.txt  #导入你项目的flask 依赖

遇到报错: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-bh2MXn/unroll/
那么试试
sudo python -m pip install --upgrade --force pip
sudo pip install setuptools==33.1.1


pip manager.py db migrate #初始化数据库  
# 这里如果出现初始化失败,那么清空你的 migration 文件夹,
你会丢掉你的测试数据,当然有不丢的办法,那就是直接去数据库里面改一个表
pip manager.py db upgrade #导入数据库,代码迁移完成


安装nginx



安装Uwsgi


安装Supervisor



我今天才知道,我之所以漂泊就是在向你靠近。

--《廊桥遗梦》


以上是关于flask|阿里云部署从入门到放弃的主要内容,如果未能解决你的问题,请参考以下文章

OpenStack从入门到放弃

openstack从入门到放弃

Python爬虫从入门到放弃(二十一)之 Scrapy分布式部署

Python爬虫从入门到放弃(二十一)之 Scrapy分布式部署

Flask 学习-41.Flask-RESTPlus 入门到放弃

阿里开源的分布式分库分表中间件之MyCat从入门到放弃