[Flask] 给我们的Flask应用配置Supervisor
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Flask] 给我们的Flask应用配置Supervisor相关的知识,希望对你有一定的参考价值。
参考技术A [TOC]这个时候我们我们可以考虑使用 supervisor 来达到我们的目的。此文接上一篇,因此我的系统还是Raspbian(Debian)。这里分享一些简单的配置使用。先看一下 supervisor 的介绍:
这个比较简单,我们直接使用 apt-get 即可安装。
pi@raspberrypi:~ $ sudo apt-get install supervisor
(卸载用:apt-get remove)
当然,你也可以用 pip 进行安装:
sudo pip install supervisor
supervisor 的配置文件位于 /etc/supervisor/ 下,如:
supervisord.conf 是默认的配置文件,我们无需修改,在 conf.d 目录下,我们创建自己的配置文件即可,这里我建了一个 uwsgi.conf 文件:
uwsgi.conf 文件内容:
这个配置文件的更多可选参数可参考 这里 。
supervisor 还提供了一个web管理界面,我们需要先对其进行配置,修改 /etc/supervisor/supervisord.conf 文件,增加如下内容即可:
安装好以后,我们有两个命令可以使用,一个是 supervisord ,另一个是 supervisorctl , supervisord 负责启动服务, supervisorctl 负责操作服务,C/S模式。
另外在上面的配置中,我们还可以使用浏览器访问 http://192.168.1.56:9000/ 对我们的进程进行管理。
参考:
Flask的配置文件
flask的配置文件
'''
四种配置flask方法配置
1.直接给app对象赋值属性
2.以字典的形式,给flask配置文件做配置
3.以文件的形式给flask做配置(django就是这种)
4.以类的形式,给flask做配置(推荐使用)
'''
from flask import Flask
app = Flask(__name__)
# 方式1(不推荐),因为只能配置两项。debug和secret_key
# app.debug = True # 默认false,自动重启
# 方式2 字典的形式
# app.config["DEBUG"] = True
# 方式3 以文件的形式,在from_pyfile里传递路径
# app.config.from_pyfile("settings.py")
# 方式4 以类的形式,一个文件多个套配置,减少测试与更改(推荐使用)
# app.config.from_object("setobj.settings")
@app.route("/")
def index():
return "json 是炮王"
if __name__ == '__main__':
app.run()
方式三的配置文件:
类似Django一样,一个专门的配置文件
DEBUG = True
方式四的配置类:
优点:一个文件,多套配置。不同的类不同的配置,减少了测试与上线的更改的配置项
class settings():
DEBUG = True
可以配置的属性
flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:
'''
default_config = ImmutableDict(
{
"ENV": None,
"DEBUG": None,
"TESTING": False,
"PROPAGATE_EXCEPTIONS": None,
"PRESERVE_CONTEXT_ON_EXCEPTION": None,
"SECRET_KEY": None,
"PERMANENT_SESSION_LIFETIME": timedelta(days=31),
"USE_X_SENDFILE": False,
"SERVER_NAME": None,
"APPLICATION_ROOT": "/",
"SESSION_COOKIE_NAME": "session",
"SESSION_COOKIE_DOMAIN": None,
"SESSION_COOKIE_PATH": None,
"SESSION_COOKIE_HTTPONLY": True,
"SESSION_COOKIE_SECURE": False,
"SESSION_COOKIE_SAMESITE": None,
"SESSION_REFRESH_EACH_REQUEST": True,
"MAX_CONTENT_LENGTH": None,
"SEND_FILE_MAX_AGE_DEFAULT": timedelta(hours=12),
"TRAP_BAD_REQUEST_ERRORS": None,
"TRAP_HTTP_EXCEPTIONS": False,
"EXPLAIN_TEMPLATE_LOADING": False,
"PREFERRED_URL_SCHEME": "http",
"JSON_AS_ASCII": True,
"JSON_SORT_KEYS": True,
"JSONIFY_PRETTYPRINT_REGULAR": False,
"JSONIFY_MIMETYPE": "application/json",
"TEMPLATES_AUTO_RELOAD": None,
"MAX_COOKIE_SIZE": 4093,
}
)
'''
以上是关于[Flask] 给我们的Flask应用配置Supervisor的主要内容,如果未能解决你的问题,请参考以下文章