如果我使用应用程序工厂模式,如何在gunicorn中运行烧瓶应用程序?

时间:2014-08-15 00:40:44

标签: flask gunicorn

我使用应用工厂模式编写了一个烧瓶应用程序。这意味着它在导入时不会自动创建应用实例。你必须为此调用create_app。现在我如何在gunicorn中运行它?

2 个答案:

答案 0 :(得分:59)

使用以下内容在项目下创建一个文件wsgi.py,然后指向Gunicorn。

from my_project import create_app

app = create_app()
gunicorn -w 4 my_project.wsgi:app
# -w 4 specifies four worker processes

Gunicorn允许指定像my_project:create_app()这样的函数调用。在大多数情况下,您可以跳过制作wsgi.py文件并告诉Gunicorn如何直接创建您的应用。

gunicorn -w 4 my_project:create_app()

请注意,您可能必须将名称放在某些shell的引号中。

gunicorn -w 4 "my_project:create_app()"

答案 1 :(得分:4)

你需要在wsgi.py中使用特定的工厂配置create_app(),就像manage.py或runserver.py一样。请参阅以下代码:

<?php 
$i = 1;
foreach ($view as $row)
{
    echo "<tr>";
    echo "<td>".$i."</td>";

    echo "<td><a href='" . base_url('admin/play' . $row->audio) . "'>" . $row=>audio . "</a><td>";

    $i++;
    echo "</tr>";
}

然后,您可以运行命令from your_app import create_app app = create_app(os.getenv('FLASK_CONFIG') or 'dev') if __name__ == "__main__": app.run() 来运行您的应用程序。