使用Gunicorn部署Flask应用程序(exploreflask tuto)

时间:2019-06-06 11:31:22

标签: python flask deployment gunicorn

要了解如何部署Flask应用,我阅读了一些Tutos,发现exploreflask中的一个非常不错。

我使用blueprints-functional structure 来构建测试应用程序,但最后在deployment part上使用了像gunicorn这样的应用程序运行器来构建BUT,tuto使用了一个带有一个唯一文件的示例,其余的

arandomfoldername/
    config.py
    requirements.txt
    run.py
    instance/
      config.py
    myappname/
        __init__.py
        static/
        templates/
            home/
            control/
        views/
            __init__.py
            home.py
            control.py
        models.py

还有

# myappname/__init__.py
from flask import Flask
from .views.home import bluehome 
from .views.control import bluecontrol 

app = Flask(__name__, instance_relative_config=True)
app.register_blueprint(bluehome)
app.register_blueprint(bluecontrol)

所以我尝试了gunicorn myappname:app,但是得到了No module named myappnameapp变量位于__init_.py包中的myappname中(如tuto所示)蓝图部分)

我用这个flask tuto来制作滚轮文件

  1. 如何管理和解决此问题?

  2. 顶级文件config.py中给出的参数应该如何使用,因为在wheel文件中没有使用它们?

1 个答案:

答案 0 :(得分:0)

在某些Tutos中,像flask.pocoo一样,它表示要构建一个车轮文件并安装它,但是gunicorn并不使用这种方式。

  • 使用Factory模式
  • 使用名为ex wsgi.py的文件从工厂导入app

然后将整个文件夹复制到生产venv中:

arandomfoldername/
    config.py
    requirements.txt
    run.py
    instance/
      config.py
    myappname/
        __init__.py
        wsgi.py
        static/
        templates/
            home/
            control/
        views/
            __init__.py
            home.py
            control.py
        models.py

然后

cd arandomfoldername
gunicorn myappname.wsgi:app