2016-03-30 5 views
-1

私はフラスコ内のログイン/パスワード/ユーザセッションの内容について学びたいと思っています。 このリンクを見つけて、提供しているコードを理解しようとしています(ページの一番下にあるコードの最大部分)。フラスコ - Python変数へのユーザ入力(ログイン/パスワード)

http://thecircuitnerd.com/flask-login-tokens/

リンクは、しかし、login.htmlとファイルの内容を提供していません。

これまでフラスコでフォームを処理してきた方法では、ユーザー入力が各python変数に帰属するrender_template関数を指定する必要があります。しかし、作者はそれをやっていないので、私は彼のユーザー入力を取得する方法はそれとは異なるはずだと思います。

+0

あなたが求めていることは本当にはっきりしません。あなたの '/ login'ルートハンドラがどのようにユーザ名とパスワードを取得するのか疑問に思っていますか? –

+0

"/ loginルートハンドラがどのようにユーザー名とパスワードを取得するのか疑問に思っていますか? そうだよ @SeanVieira –

答えて

1

あなたはあなたはそれが二つの変数、'username''password'を出すためにrequest.formを使用していることがわかりますリンクされたコードでのログインルートハンドラを見れば:

@app.route("/login/", methods=["GET", "POST"]) 
def login_page(): 
    """ 
    Web Page to Display Login Form and process form. 
    """ 
    if request.method == "POST": 
     user = User.get(request.form['username']) 

     #If we found a user based on username then compare that the submitted 
     #password matches the password in the database. The password is stored 
     #is a slated hash format, so you must hash the password before comparing 
     #it. 
     if user and hash_pass(request.form['password']) == user.password: 
      login_user(user, remember=True) 
      return redirect(request.args.get("next") or "/")   

    return render_template("login.html") 

これを実行する最も簡単な方法は次のようになり以下のHTMLを持つ:これは、ユーザー名を再移入しません

<form action="/login/" method="POST"> 
    <input name="username" placeholder="username"> 
    <input type="password" name="password" placeholder="password"> 
    <input type="submit" value="Login"> 
</form> 

場合、ユーザミスタイプ、ユーザー名やパスワード、またそれが利用者に彼らがログインに失敗したことを任意の指示を与えるだろう。彼らは再びログインフォームを表示します。しかし、こののコード例であるため、作者が作成しようとしていたポイントを不明瞭にする有用なコードを除外することを選択したことは理解できます。

+0

あなたはこれらのメカニズムをよりよく理解するのに役立つリンクがありますか?ありがとう@seanvieira –

関連する問題