Flask“(”使用gunicorn时出现意外错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask“(”使用gunicorn时出现意外错误相关的知识,希望对你有一定的参考价值。

我尝试使用gcloud,gunicorn部署我的烧瓶应用程序。但是当我像下面那样编写app.yaml时,它没有用。

这是我的app.yaml文件。

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT flask_todo:create_app

runtime_config:
  python_version: 3

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

init.py文件

import os
from flask import Flask,render_template,request,url_for,redirect
from . import db


def create_app(test_config=None):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(
        SECRET_KEY='dev',
        DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
    )

    if test_config is None:
        app.config.from_pyfile('config.py', silent=True)

    else:
        app.config.from_mapping(test_config)


    try:
        os.makedirs(app.instance_path)

    except OSError:
        pass
    return app

flask_todo#这是我cd到的地方并运行gunicorn flask_todo:create_app

flask_todo
--db.py
--__init__.py
--app.yaml
--requirements.txt

是什么原因?请帮我..

答案

您对gunicorn的参数需要是可导入模块中的变量,并且代表WSGI应用程序。在您的示例中,create_app是一个返回这样一个变量的函数,而不是一个变量本身。

像下面这样的东西应该工作:

app.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT flask_todo:app

runtime_config:
  python_version: 3

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

__init__.py

import os
from flask import Flask,render_template,request,url_for,redirect
from . import db


def create_app(test_config=None):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(
        SECRET_KEY='dev',
        DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
    )

    if test_config is None:
        app.config.from_pyfile('config.py', silent=True)

    else:
        app.config.from_mapping(test_config)


    try:
        os.makedirs(app.instance_path)

    except OSError:
        pass
    return app

app = create_app()

以上是关于Flask“(”使用gunicorn时出现意外错误的主要内容,如果未能解决你的问题,请参考以下文章

在 url 模式中使用 include() 时出现意外的 NoReverseMatch 错误

语法错误:使用 renderToString(<RoutingContext ...renderProps /> 时出现意外标记 <

使用 Spring Security 时出现意外的 403 错误

无法解析错误:伊斯坦布尔“导入”时出现意外令牌

上传到 Testflight 时出错 解析 IPA 时出现意外错误

在第三方函数中使用向量引用时出现意外错误