使用Gunicorn运行Flask引发TypeError:index()获取0个位置参数,但给出了2个

时间:2016-08-28 04:54:22

标签: python flask gunicorn

我正在尝试使用Gunicorn运行Flask应用程序。当我运行gunicorn app:index时,我收到错误TypeError: index() takes 0 positional arguments but 2 were given。我见过的所有例子都没有显示index需要两个参数。这个错误是什么意思?如何使用Gunicorn运行Flask?

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return 'Hello, World!'
gunicorn app:index
    respiter = self.wsgi(environ, resp.start_response)
TypeError: index() takes 0 positional arguments but 2 were given

我更改index以获取两个参数,但出现了不同的错误。

@app.route("/")
def index(arg1, arg2):
    return 'Hello, World!'
  /python3.4/site-packages/flask/templating.py, line 132, in render_template
    ctx.app.update_template_context(context)
AttributeError: 'NoneType' object has no attribute 'app'

1 个答案:

答案 0 :(得分:7)

您必须将Flask实例传递给gunicorn,而不是像index那样传递函数名称。因此,如果您的应用保存为app.py,那么您必须按如下方式运行gunicorn

$ gunicorn --bind 127.0.0.1:8000 app:app