在电子邮件链接中传递给url_for的变量不起作用

时间:2019-05-29 17:47:08

标签: python flask url-routing

我正在为我的烧瓶应用程序设置注册功能。当用户请求注册时,我会向我的管理员帐户发送电子邮件,并希望批准或拒绝他们的请求。

当我发送电子邮件时,注册表格提供的用户名,电子邮件和密码将传递到html中并可以显示。但是,当我尝试在使用“ url_for”创建的链接中一起移动这些变量时,将无法获得它们。

这是我的管理员帐户收到的电子邮件:

<p>{{ form.username.data }} has requested registration authorization.</p>
<p> Their information is as follows,</p>
<p>Username: {{ form.username.data }}</p>
<p>Email: {{ form.email.data }}</p>
<p>Password: {{ form.password.data }}</p>
<p>
  To register this user:
  <a href="{{ url_for('auth.register_user', username=form.username.data,
             email=form.email.data, password=form.password.data, _external=True) }}">
    click here.
  </a>
</p>
<p>-ADCo Inventory</p>

用户名,电子邮件和密码均在此处正确显示。 这是auth.register_user html,我只是在这里暂时尝试显示用户名和密码,这是行不通的。

{% extends 'base.html.j2' %}

{% block content %}
<h2> Register {{ username }}</h2>
<h2>pass: {{ password }}</h2>

{% endblock %}

如果有帮助,这是auth.register_user的路由:

@auth_bp.route('/register_user', methods=['GET', 'POST'])
def register_user():

    form = RegistrationForm()

    return render_template('register_user.html.j2', form=form)

1 个答案:

答案 0 :(得分:1)

您已通过如下所示的get请求传递了数据:

<a href="{{ url_for('auth.register_user', username=form.username.data,
             email=form.email.data, password=form.password.data, _external=True) }}">

例如,要访问用户名,您需要使用request.args,如下所示:

username = request.args.get('username', '')