擅长:python、mysql、java
<p>Gunicorn(和大多数WSGI服务器)默认在您指向的任何模块中查找名为<code>application</code>的可调用。添加别名<code>from myproject import myapp as application</code>或<code>application = myapp</code>将使Gunicorn再次发现可调用的。</p>
<p>但是,不需要<code>wsgi.py</code>文件或别名,Gunicorn可以直接指向真正的模块并可调用。</p>
<pre class="lang-none prettyprint-override"><code>gunicorn myproject:myapp --workers 16
# equivalent to "from myproject import myapp as application"
</code></pre>
<p>Gunicorn还可以调用应用程序工厂(可选带有参数)来获取应用程序对象。(这在Gunicorn 20中暂时不起作用,但在20.0.1中是<a href="https://github.com/benoitc/gunicorn/pull/2178" rel="nofollow noreferrer">added back</a>。)</p>
<pre class="lang-none prettyprint-override"><code>gunicorn 'myproject.app:create_app("production")' --workers 16
# equivalent to:
# from myproject.app import create_app
# application = create_app("production")
</code></pre>
<hr/>
<p>对于不支持调用工厂的WSGI服务器或其他更复杂的导入,需要一个<code>wsgi.py</code>文件来完成设置。</p>
<pre class="lang-py prettyprint-override"><code>from myproject.app import create_app
app = create_app("production")
</code></pre>
<pre class="lang-none prettyprint-override"><code>gunicorn wsgi:app --workers 16
</code></pre>