使用uWSGI运行flask项目详解

在开发完一个 flask 项目后,首先面临就是如何部署项目,很多人在开发者本机正常运行,但是并不知道如何部署到服务器并良好运行 。

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议, flask 中可以使用 uWSGI 作为web服务,运行 flask 开发的项目 。

1、创建 uWSGI 配置文件

配置文件放在项目根目录下,名称随意,以.ini后缀结尾 ,这里我创建的文件名是 start.ini 内容如下:

[uwsgi]
#uwsgi启动时,所使用的地址和端口(这个是http协议的)
http=0.0.0.0:8000
#指向网站目录
chdir=/Users/wangjie/PycharmProjects/repairXcx
#python 启动程序文件
wsgi-file=app.py
#python 程序内用以启动的application 变量名
callable=app
#处理器数
processes=4
#线程数
threads=2

请注意理解两点:

1)chdir=/Users/wangjie/PycharmProjects/repairXcx
这个配置一定要指定到你的项目的源码根目录中

2)callable=app

这个 app 指的是 flask 项目启动程序中定义的 flask name 的名字,我的启动程序是 app.py , 里面定义的 flask 的名字是 app 。

app = Flask(__name__)

并不是对应 app.py 的名字 ,你的启动程序文件名可以是,start.py、manager.py 等任意名字 。

而是启动程序中 Flask(name) 的名字,若你的名字不是 app 而是 web ,那么你的配置应该改为

callable=web

否则会出现下面的错误

unable to find "application" callable in file app.py
2、安装 uWSGI

执行命令查看是否已经安装 uwsgi ,安装则显示出 uwsgi 的版本,否则未安装

uwsgi --version

若未安装则执行下面命令,安装 uwsgi

  pip install uwsgi 
3、使用 uWSGI 方式启动项目

直接命令行启动项目

uwsgi --ini start.ini

这里我们面临一个问题,如果你执行了 ctrl + c 命令退出了命令行,会发现我们的项目访问不到了,因为你退出了前台运行的 uwsgi 命令。

想要退出当前命令行,去执行其他命令,而 flask 应用可以正常访问,只需要多加一个参数 -d 即可,如下:

uwsgi -d --ini start.ini

这样运行的 flask 项目会一直处于后台运行 ,想要关掉 flask 项目怎么办?

windows 下直接去任务监控器中找到此服务关闭。
mac、Linux下首先查看 uwsgi 的进行号

 ps -ef|grep uwsgi

会出现如下的结果 ,第二列表示进程号

  501  7632     1   0  8:36AM ttys000    0:00.00 uwsgi --ini start.ini
  501  7634     1   0  8:36AM ttys000    0:00.02 uwsgi --ini start.ini
  501  7635     1   0  8:36AM ttys000    0:00.02 uwsgi --ini start.ini
  501  7636     1   0  8:36AM ttys000    0:00.03 uwsgi --ini start.ini
  501  7853  6111   0  8:42AM ttys000    0:00.00 grep uwsgi

依次执行下面命令,将所有 uwsgi 进程杀死即可

kill -9 7632
kill -9 7634
kill -9 7635
kill -9 7636
4、访问项目

由于我们在配置文件,配置的 http 访问形式为所有 ip ,端口 8000

http=0.0.0.0:8000

那么你可以通过下面四种方式访问,最后一个为局域网 ip 访问

http://0.0.0.0:8000
http://127.0.0.1:8000
http://localhost:8000
http://192.168.1.107:8000 

同时在服务器上,若外网端口 8000 开放的情况下,可以通过外网 ip 加端口号来访问 。

http://39.12.1.31:8000 

对于上线微信小程序来说,需要使用 https 协议域名 443 端口的形式访问,443 端口为默认端口,访问时不需要加端口号即可,那么访问形式如下:

https://www.myaapp.com 
总结:

本文我们讲解了,如何使用uWSGI服务器运行flask项目,通过本讲你应该学会自己配置 uWSGI 、安装 uWSGI 、命令行前台启动 flask 项目 、
命令行后台启动 flask 项目,找到 uWSGI 进程,关闭进程即关闭后台运行的项目 ,多种 IP 形式访问 flask 项目。

现在把你的《报修小程序后台源码》使用 uWSGI 的形式运行起来吧,有条件的同学把你的应用部署到服务器。

如果你遇见任何问题,可扫码关注我,与我交流!
在这里插入图片描述


往期本系列文章回顾:

开源 flask + mysql 校园报修微信小程序系统

flask 程序后台源码安装部署(微信报修小程序源码讲解一)

flask 启动程序与路由的使用(微信报修小程序源码讲解二)

flask 拦截器与session的使用(微信报修小程序源码讲解三)

flask mysql 数据库增删改查(微信报修小程序源码讲解四)

flask blueprint 蓝图与 url_for 的使用(微信报修小程序源码讲解五)

微信小程序授权登录与用户信息保存详解(微信报修小程序源码讲解六)

小程序与后台 api接口数据交互详解(微信报修小程序源码讲解七)

手把手教你完成微信小程序用户信息绑定(微信报修小程序源码讲解八)

来了!微信小程序五款最受欢迎的UI框架解读

  • 10
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值