request.form не возвращает форму Python Flask даже с атрибутом name - PullRequest
0 голосов
/ 30 мая 2019

Не могу понять, почему моя форма не вернется по запросу. Я прочитал несколько статей, в которых говорилось, что проблема связана с атрибутом name, поэтому я попытался безуспешно. Также я пробовал разные способы получения формы, такие как

request.form['form']

request.form.get('form')

request.form

Вот шаблон формы

{%  block body %}
    <div class="app-container">
        <h2 class="page-header">Register Form</h2>
        {% from "includes/_formhelpers.html" import render_field %}
        <form action="" method="POST" name="form">
            <div class="form-group">
                {{render_field(form.name, class_="form-input")}}
            </div>
            <div class="form-group">
                {{render_field(form.email, class_="form-input")}}
            </div>
            <div class="form-group">
                {{render_field(form.username, class_="form-input")}}
            </div>
            <div class="form-group">
                {{render_field(form.password, class_="form-input")}}
            </div>
            <div class="form-group">
                {{render_field(form.confirm, class_="form-input")}}
            </div>
            <div class="form-group">
                <input type="submit" class="form-btn" value="Submit" name="button">
            </div>
        </form>
    </div>
{% endblock %}

а вот форма маршрута получения запроса

@app.route('/register', methods=['GET', 'POST'])
def register():
    form = RegisterForm(request.form.get('form'))
    print(form)
    if request.method == 'POST' and form.validate():
        name = form.name.data
        email = form.email.data
        username = form.username.data
        password = sha256_crypt.encrypt(str(form.password.data))
        # set mysql cursor
        cur = mysql.connection.cursor()
        # insert statement for data to be commited
        cur.execute("INSERT INTO users(name, email, username, password) VALUES(%s, %s, %s, %s)", (name, email, username, password))
        # commit to db
        mysql.connection.commit()
        # close connection
        cur.close()
        flash('You are now registered, please login', 'success')
        redirect(url_for('register'))
    return render_template('register.html', form=form)

когда я print(form) получаю это в терминале <__main__.RegisterForm object at 0x03840AF0>, но это мне мало что говорит. Итак, у меня есть еще один вопрос: как лучше всего отладить эти проблемы?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...