2017-08-21 9 views
0

私はジンジャー/フラスコを学ぶのが初めてで、これまで比較的低い理解度を持っています。もし誰かがこれを手伝うことができたら、それは素晴らしいことです。ここでは変数の値にアクセスする方法を理解するのに苦労しています。私は成功しなかった弱い試みをした。私は「送信」ボタンをクリックして「ようこそ」の後に次のページに印刷するために自分の名前を取得しようとするとエラーが表示されます。ジンジャの値はこのコンテキストでどのように返されますか?

申し訳ありませんが、私はフォームを持つインデックスページを持っており、私は提出された値をPOSTページで以下のように返したいと思います。しかし、私は構文に問題があります。これはpython/python/jinja2/htmlを使用してFlaskでPycharmに組み込まれています。それが私の混乱の一部が存在するところです。

EDIT_1:このトピックにはいくつかの以前の投稿があることを理解していますが、これらの投稿が説明する内容を適用できないようです。実際、私がここにあるコードは、私がここで見つけた別の投稿からです。ここで

はPythonのファイルである:ここで

from flask import Flask, render_template, request 

app = Flask(__name__) 


@app.route("/") 
def index(): 
    return render_template("index.html") 


@app.route("/username", methods=['POST', 'GET']) 
def username(): 
    if request.method == 'POST': 
     user = request.form 
     return render_template("username.html", username=user) 
    return print("Something went wrong...smash your computer!") 


if __name__ == '__main__': 
    app.run(debug=True) 

は、私は、ユーザー名を取得したいと考えているフォームが含まれているインデックスファイルです:

... 
<div id="wrapper"> 
    <div id="title_head"> 
    <p class="title"> Gauntlet </p> 
    </div> 
    <div id="working_area"> 
    <form action = "http://localhost:5000/username" method = "POST"> 
     <p>Enter Username: <input type = "text" name = "Name" /></p> 
     <p><input type = "submit" value = "SUBMIT" /></p> 
    </form> 
    </div> 
</div> 
</body> 
</html> 

そして最後に、ここでのユーザー名がありますPOSTページ(ここに関連する部分を記載します):

答えて

0

まず、username=request.form["Name"]user=request.formを変更します。

次に、return render_template("username.html", username=user)render_template("username.html", username=username)に変更します。

... 
<body> 
    <div id="wrapper"> 
     <div id="title_head"> 
      <p class="title"> Gauntlet </p> 
     </div> 
     <div id="working_area"> 
      <p>Welcome, {{ username }}</p> 
     </div> 
    </div> 
</body> 
+0

他のテンプレートエンジンでは、私はusername.userを使うことができましたが、明らかにこの問題の一部ではありません。 – 0decimal0

+0

.pyファイルの割り当てを変更する必要がありますか? 'ユーザー=のRequest.Form [ "名前"]' に 'ユーザ名=のRequest.Form [ "名前"]' EDITは:?私自身の質問に答えました。はい。 –

+0

これは機能しました。ありがとうございました! –

1

問題はコード)を使用してフォームデータを解析します。データを入力するフォーム要素のkeyを指定する必要があります。

は、コードにuser=request.form['Name']を追加し、あなたが何かを行うことができますusername.Thenあなたは変数に必要な値を持つことになります。

return render_template("username.html", username=user) 
+1

POSTページのテンプレートもエラーです:

最後は、username.htmlのテンプレートファイルを変更します。 – stamaimer

+0

@stamaimer Ok。私はそれを得る。私は、ジンジャーテンプレートエンジンにあまり慣れていません。しかし、OPはテンプレートを改善することができます。 – 0decimal0

関連する問題