如何在Flask中使用url_for

时间:2016-05-14 00:14:26

标签: python flask

我在Flask中使用 url_for 时遇到了一些问题。 我有一个带按钮的模板:

<a class="btn btn-primary btn-block" href="{{ url_for('login', provider='google') }}" role="button">
    <i class="fa fa-google fa-lg"></i>  Login with <strong>Google</strong>
</a>

现在,当我按下按钮时,我的网址从http://localhost:5000/login更改为http://localhost:5000/login?provider=google

然后是我的python代码:

@app.route("/login")
def login():
    return render_template('login.html')

我不知道如何修改我的python代码,以便它可以处理这个提供程序

文档对此并不十分清楚,至少我无法理解它。

谢谢!

修改

我尝试过看似显而易见但没有成功的事情:

@app.route("/login?provider=<provider>")
def login(provider):
    if provider == 'google':
        return "Hello, Google!"
    return render_template('login.html')

但现在它找不到http://localhost:5000/login,这也很明显。

编辑2

我设法让它发挥作用,但我不知道这是不是一个好习惯:

@app.route("/login")
@app.route("/login?provider=<provider>")
def login(provider = None):
    if provider == 'google':
        return "Hello, Google!"
    return render_template('login.html')

0 个答案:

没有答案