[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的主要内容,如果未能解决你的问题,请参考以下文章

Flask第八章:Flask之flask实例化配置以及flask对象配置

Flask配置参数

Flask 的配置文件

Flask的配置文件

Flask--路由, 配置, 蓝图

flask-sqlalchemy