在Python中,最常用的两个web开发框架就是django和flask了
会部署django,那么flask部署也是信手拈来
大部分的部署方式都是大同小异,都是使用uwsgi进行部署,然后nginx做反向代理
最后ssl的部署也是一样的道理,开443端口,把证书的位置写上去,将80重定向到443即可
本地准备
1. 代码准备
首先随便准备点模板文件,静态文件,保证本地开发能够正常访问

requirements.txt是必须的
pip freeze > requirements.txt
这里有个坑
如果你是用windows powershell导出的话,可能在服务器上打不开这个文件
这个地方需要留意一下
第二个就是要明确自己项目的启动文件,我的是app.py
来看看本地的效果吧

你随便写一个html网页,然后使用static里面的静态文件就行,只是一个部署测试
不用局限实际内容
2. 上传到代码仓库
这一步的操作就是使用git上传到代码管理仓库,这里我使用gitee(码云)为例
2.1 创建仓库

2.2 起别名
git remote add origin git@gitee.com:fengfengzhidao/flask_deploy.git
2.3 上传
git push origin master
服务器准备
这里的准备工作就比较多了
首先连上的你的服务器,不会的可以百度一下怎么连接云服务器
可以用秘钥登录,账号密码登录等
第二确保git软件能否使用,没有的话需要安装一下
第三,由于这个项目没有用数据库,所以数据库操作略过
1. 拉取代码
进入www/wwwroot目录下
git clone git@gitee.com:fengfengzhidao/flask_deploy.git
下载下来之后,就可以进入宝塔界面了
2. 宝塔创建flask项目

大家这里看图就很好理解了
3. 修改wsgi.ini
主要是将http改成socket
修改uwsgi.ini需要先将项目暂停
因为我们是要使用nginx做反向代理,托管静态文件,而不是使用uwsgi

当然,这里为了安全性可以将0.0.0.0改成127.0.0.1
如下

4. nginx配置
server {
listen 80; # 监听端口
server_name www.lzysite.com; # 域名
location / {
uwsgi_pass 127.0.0.1:8000; # uwsgi启动的端口
include uwsgi_params; # 固定搭配
}
location /static { # 静态文件转发路径
alias /www/wwwroot/flask_deploy/static;
}
}
这个地方比较简单,如果这个地方弄完,你应该就可以访问你的域名看到这个项目了

如果出不来,去看看你的云服务器安全组,是不是把80端口给禁了
5. https部署
先去申请一张免费的ssl证书,下载的时候选择nginx

会有两个重要的东西
一个是xxx.key
一个是xxx.pem
然后在你的nginx中配置
server {
listen 443;
ssl_certificate /www/server/nginx/www.lzysite.com.pem; # pem的路径
ssl_certificate_key /www/server/nginx/www.lzysite.com.key; # key的路径
server_name www.lzysite.com;
location / {
uwsgi_pass 127.0.0.1:8000;
include uwsgi_params;
}
location /static {
alias /www/wwwroot/flask_deploy/static;
}
}
6. http跳转https
我们需要将80的请求跳转到443去,有很多种写法,其实都是重定向
server {
listen 80;
server_name www.lzysite.com;
rewrite ^(.*)$ https://$host:443$1 permanent; # 重定向到443 早期写法
# return 301 https://$server_name$request_uri; # 新写法
}
server {
listen 443;
ssl_certificate /www/server/nginx/www.lzysite.com.pem; # pem的路径
ssl_certificate_key /www/server/nginx/www.lzysite.com.key; # key的路径
server_name www.lzysite.com;
location / {
uwsgi_pass 127.0.0.1:8000;
include uwsgi_params;
}
location /static {
alias /www/wwwroot/flask_deploy/static;
}
}
致此,flask的项目部署就全部完成了,视频看完之后有没有豁然开朗呢
如果这个教程对你有帮助的话,不要忘了给我一个一键三连哦!