2017-05-30 16 views
0

私の目標は、ユーザに自分のユーザ名とパスワードを入力させ、データベースにチェックインして正しいかどうかを確認し、ログインを許可するか、アクセスを拒否するかを選択することです。現在、ユーザー認証ページのURLを呼び出すhtmlページで情報を尋ねるように設定しています。ユーザー認証ページのURLは、次にビューファイルに移動してデータベースの一致を確認します。私はいくつかのコードを書きましたが、私はエラーに走り続けています。私はそれを修正する方法を考え出すことができません。Djangoでパラメータ値を渡すには?

これは、ユーザー情報を最初に確認する正しい方法であっても、これを行うのに効果的な別の方法があるかどうかを確認するための適切な設定ですか?ここに私のコードがあります。

HTMLページ:

function getUserInfo() { 
    username = document.getElementById("username").value; 
    password = document.getElementById("password").value; 

    "{% url 'user_authentication' %}" 

} 

urls.py:

urlpatterns = [ 
    url(r'^user_authentication/$', views.user_authentication, name='user_authentication'), 
] 

views.py:

def user_authentication(request): 
    username = request.GET.get('username') 
    password = request.GET.get('password') 
    if (username == "Stack" and password == "Overflow"): 
    return render(request, 'next url goes here') 

私がGETを使用しようとしたが、それは動作しません。私はまだデータベースの設定を持っていないので、私は次のURLに到達するためにユーザー名とパスワードの要件をハードコーディングしています。

+0

'getUserInfo()'が何をしているのかよく分かりませんが、 '' {%url whatever%} ''を置くだけで実際には何の要求もしません。 –

+0

いずれの場合でも、これを行う通常の方法は簡単な形式で行われます。 –

+0

それは私が問題を理解している部分の一つです。私は今それを達成しようとしている方法でそれを行うには、コードのどこかでURLを呼び出さなければならないので、私はそれを試してみましたが、それが私のやり方であるかどうかはわかりません。どのように私はどのように単純なフォームを使用しますか?この情報を私がどこで見つけることができるかにリンクすることができますか? – Blake

答えて

0

単純なHTMLフォームが必要です。

<form action="{% url 'user_authentication' %}" method="GET"> 
 
    <div> 
 
    <label for="username">Username</label> 
 
    <input name="username" id="username"> 
 
    </div> 
 
    <div> 
 
    <label for="password">Password</label> 
 
    <input name="password" id="password"> 
 
    </div> 
 
    <div> 
 
    <input type="submit"> 
 
    </div> 
 
</form>

これは(明らかに本物のサイトに、あなたがPOSTを使用するとDjangoでrequest.POSTからデータを取得)のGETのparamsにユーザー名とパスワードを送信します。

これはすべて基本的なWeb開発であり、Django特有のものではありません。入門的なHTMLチュートリアルを行うことでメリットが得られます。

+0

わかりました。私はHTMLの基本に精通していますが、私はまだDjangoとデータバインディングとこのすべてのものには新しかったので、これはすべて私にとってはちょっと混乱しています。ご協力ありがとうございました。 – Blake

+0

@Blakeダニエルの答えがあなたを助けたら、それを受け入れることを検討してください –

関連する問題