Django實現簡單的用戶登錄
(未連接數據庫)最基礎的模型
由於本人第一次寫博客,不足之處還請大家多多指教。
昨天到現在學習了Django的一些基礎,如加載靜態文件,url傳遞參數,url命名以及反向解析等,這些以後都會在博客裏陸續提到。
有了以上的基礎以後,今天晚上就寫了一個簡單的登錄模型,爲後續連接數據庫做做準備。
項目名–myshop
app名–zhihu(本人隨便起的)
1.首先要配置兩個urls.py文件,myshop下的urls.py配置如下:
注:這裏由於只展示登錄模塊,先把不需要的註釋掉
#from django.conf.urls import url
#from django.contrib import admin
from django.conf.urls import url, include
urlpatterns = [
#url(r'^admin/', admin.site.urls),
#url(r'^hello/',include('hello.urls')),
#通過項目名(zhihu)指向該項目下的urls.py
url(r'^zhihu/',include('zhihu.urls')),
]
zhihu下的urls.py配置如下:
from django.conf.urls import url
from . import views
urlpatterns=[
#前臺登陸頁面
url(r'^login/$', views.login, name='login'),
#登錄驗證
url(r'^do_login/$', views.do_login, name='do_login'),
]
2.然後配置zhihu下的views.py:
注:這裏只是簡單的對用戶名和密碼進行了驗證
from django.shortcuts import render
from django.http import HttpResponse
#加載登錄頁面
def login (request):
return render(request,'zhihu/login.html')
# 驗證登錄
def do_login(request):
username = request.POST.get('username')
password = request.POST.get('password')
print(username+" "+password)
if username == 'admin' and password == '123456':
return render(request, 'zhihu/index.html')
else:
return render(request, 'zhihu/login.html', {
'username': username,
'password': password
})
3.下面是兩個簡單的頁面login.html:
form標籤中的action屬性,action=”{% url ‘do_login’ %}”,這裏指出了form表單要提交到zhihu中的views.py中的do_login方法去驗證這個表單
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登錄</title>
</head>
<body>
<div>
<form action="{% url 'do_login' %}" method="post">
{% csrf_token %}
<label for="username">用戶名:</label>
<input id="username" type="text" name="username" value="{{ username }}"><br />
<label for="password">密碼:</label>
<input id="password" type="password" name="password" value="{{ password }}"><br />
<input type="submit" value="登錄">
</form>
</div>
</body>
</html>
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主頁</title>
<body>
歡迎,{{ username }}
</body>
</html>
最後,我們來捋一遍思路:
1.首先在項目下的urls.py中配置路由,通過app名來指向到app下的urls.py繼續進行路由 。
2.然後通過login來標識是個登陸頁面,通過url(r’^login/$’, views.login, name=’login’),去執行app中的views.py的login方法。
3.然後
#加載登錄頁面
def login (request):
return render(request,'zhihu/login.html')
通過此方法講login.html顯示。
4.登錄時, form標籤中的action屬性,action=”{% url ‘do_login’ %}” 提交到zhihu中的views.py中的do_login方法去驗證這個表單 。
5.如果驗證成功則顯示主頁,否則仍然返回登陸頁面
# 驗證登錄
def do_login(request):
username = request.POST.get('username')
password = request.POST.get('password')
print(username+" "+password)
if username == 'admin' and password == '123456':
return render(request, 'zhihu/index.html')
else:
return render(request, 'zhihu/login.html', {
'username': username,
'password': password
})
總結,這個例子只是寫了一個登陸的demo,需要改進的地方還很多,但簡單易懂,適合剛剛學習而無從下手的人(本人就是)。後續會更新連接數據庫後的登錄,以及註冊。