我使用flask开发到部署组织结构的步骤

字数 898阅读 105

创建新的数据库
设置新用户 能不用root尽量不用。
mysql -u root
create user 'web'@'localhost' identified by 'web';
use 数据库名;
grant all on 数据库名.* TO 'web'@'localhost';

创建虚拟环境:
pip install virtualenv
virtualenv venv 或者python -m virtualenv venv
mac linux : source venv/bin/activate

更改pip安装源为国内的源,比如aliyun

mkdir ~/.pip

vi ~/.pip/pip.conf

添加内容如下:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

服务器
一安装.
yum install git
git --version
二. 生成SSH密钥
ssh-keygen -t rsa -C "your email address"
连续按3个回车(密码默认为空),得到 id_rsa 和 id_rsa.pub 文件,在/root/.ssh 下说明生成成功

三.添加密钥到Github

打开 Github,登录自己的账号后
点击自己的头像->settings->SSH And GPG Keys->New SSH key
将本地 id_rsa.pub 中的内容粘贴到 Key 文本框中,随意输入一个 title(不要有中文),点击 Add Key 即可
4测试.
ssh git@github.com
会出现如下询问:
Are you sure you want to continue connecting (yes/no)?
键入yes后回车,如果出现
Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell accessConnection to github.com closed.

项目中需要环境变量的时候:
编辑变量:vi /etc/profile
添加 export xxxx=xxx
马上生效:source /etc/profile

本地先推送到git
服务器clone下来
每次更新:git pull origin master

开始项目:
cookiecutter https://github.com/sloria/cookiecutter-flask.git
添加git

使用supervisor来管理gunicorn进程的启停

yum install -y supervisor

systemctl start supervisord.service

systemctl enable supervisord.service

要监控gunicorn进程,只需要添加/etc/supervisord.d/gunicorn.ini配置文件,详细配置参考gunicorn的官方示例

vi /etc/supervisord.d/gunicorn.ini

内容如下:
[program:gunicorn]
command=/home/www/flask_project/venv3/bin/gunicorn wsgi:app -c deploy/gunicorn.conf.py
directory=/home/www/flask_project
user=root
autostart=true
autorestart=true
redirect_stderr=true

说明:
command 即启动gunicorn的命令,此处要写绝对路径
directory 项目部署目录,不然没办法知道command中wsgi模块在哪

  1. 增加配置文件后,更新

supervisorctl reread

supervisorctl update

  1. 查看状态

supervisorctl status

  1. 启动/停止

supervisorctl start gunicorn

supervisorctl stop gunicorn

supervisorctl restart gunicorn

附上git常用命令以供使用:
git clone <address>:复制代码库到本地;
git add <file> ...:添加文件到代码库中;
git rm <file> ...:删除代码库的文件;
git commit -m <message>:提交更改,在修改了文件以后,使用这个命令提交修改。
git pull:从远程同步代码库到本地。
git push:推送代码到远程代码库。
git branch:查看当前分支。带*是当前分支。
git branch <branch-name>:新建一个分支。
git branch -d <branch-name>:删除一个分支。
git checkout <branch-name>:切换到指定分支。
git log:查看提交记录(即历史的 commit 记录)。
git status:当前修改的状态,是否修改了还没提交,或者那些文件未使用。
git reset <log>:恢复到历史版本。
Git实例:
1、远程仓库README.git为空,把本地代码上传到远程仓库
echo "# Test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:******/README.git
git push -u origin master

2、更新本地代码到远程仓库
git add README.md
git commit -m "first commit"
git push -u origin master
3、获取远程仓库中的代码到本地
git clone git@github.com:*****/README.git
4、从远程仓库同步代码更新本地代码
git pull origin master

推荐阅读更多精彩内容