首页 > 解决方案 > 从烧瓶中的表单获取数据的问题

问题描述

我基本上是在创建一个烧瓶网络应用程序,它从用户那里获取用户名并获取他/她的 codeforces 数据我在从表单中提取电子邮件 ID 时遇到问题。我得到的是用户名,但不是电子邮件 ID。它们都在 html 文件中的一个表单标记中。

浏览器错误:werkzeug.exceptions.HTTPException.wrap..newcls: 400 Bad Request: KeyError: 'email-id'

<form method="POST">
                        <div class="field">
                            <label class="label">Username:</label>
                            <div class="control">
                                <input class="input" type="text" placeholder="Enter Codeforces username" name="username" value="{{user.handle}}"></input>
                            </div>
                        </div>
                        <div class="has-text-centered">
                            <input class="button is-link" name="get-info" type="submit" value="Get Info">
                        </div>
                        <div class="field">
                            <label class="label">EMail id:</label>
                            <div class="control">
                                <input class="input" type="text" placeholder="Enter mail id" name="email-id" value="">
                            </div>
                        </div>
                        <div class="has-text-centered">
                            <input class="button is-link" name="get-mail" type="submit" value="Get Mail">
                        </div>
                    </form>


@app.route('/',methods=['GET','POST'])
def index():
    if request.method == 'POST':
        username = request.form['username']
        email_id = request.form['email-id']
        print(email_id)
        print(username)

标签: pythonformsflaskrequest

解决方案


编辑:

自从我第一次回复以来,您在示例中发布了更多代码。您需要括号而不是方括号,并将“.get”添加到方法中。

改变..

username = request.form['username']

至..

username = request.form.get('username')

推荐阅读