我在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')