2017-05-30 84 views
0

我的目標是讓用戶輸入他們的用戶名和密碼,然後在數據庫中檢查用戶名和密碼,看他們是否正確或不允許他們登錄或被拒絕訪問。目前,我已經設置了它,以便在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>

這將在GET PARAMS發送您的用戶名和密碼(顯然在一個真正的網站,你會使用POST,並在Django從request.POST獲取數據)。

請注意,這是所有基本的Web開發,沒有特定的Django;您可以從做一個介紹性的HTML教程中受益。

+0

好吧我想我明白了。我熟悉HTML的基礎知識,但對於Django和數據庫以及所有這些東西,我仍然很陌生,所以這些都對我有點困惑。感謝您的幫助。 – Blake

+0

@Blake如果丹尼爾的回答對你有幫助,請考慮接受它 –