24

自分の教育のために、Flask に簡単なフォームを設定しようとしています。次のフォーム コードを含む login.html ページがあります。

<form action="{{ url_for('login') }}" method="post">
    <div>
        <label for="username">Username</label>
        <div>
            <input type="text" id="username" name="username" placeholder="Username">
        </div>
    </div>
    <div>
        <label for="password">Password</label>
        <div>
            <input type="password" id="password" name="password" placeholder="Password">
        </div>
    </div>
    <div >
        <input class="btn" type="submit">
    </div>
</form>

以下のようなコードで受信しているのですが、Flaskが空request.formを返すので処理できません。

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        request.form['username']
        ...

私は今、別のライブラリ (WTForms) を学びたくありません。また、ブートストラップを使用しているため、頭痛の種になります。Flask/HTML では何が表示されないのですか?

4

3 に答える 3

10

私はその問題を抱えていました。郵便配達員や一部のライブラリ、または Web ブラウザなどの一部のツールは、フラスコが投稿された値として識別しない方法でデータを送信します。私の観点からは、これはフラスコの問題です。

これは私がそれを解決するために従った回避策です: 1 - json を使用して情報を送信しました。これを見てください:

HTMLフォームデータを使用してJSONオブジェクトを送信する方法

2 - パラメータを取得する代わりに: value = request.form["myparamname"] を使用しました:

json_data = request.get_json(force=True) 

value = json_data["myparamname"]
于 2016-03-18T11:05:01.110 に答える