dashboard/views.py
from django.http import HttpResponse
def login(request):
if request.method == "POST":
username = request.POST.get("username")
userpass = request.POST.get("userpass")
if username == "admin" and userpass == "123456":
msg = "登录成功"
else:
msg = "登录失败"
else:
msg = "请求方法不被允许"
return HttpResponse(msg)
devops/urls.py
from django.conf.urls import url,include
from .views import index, login
urlpatterns = [
url(r'^$', index, name='index'),
url(r'^login/$', login, name='login')
]
测试:
In [28]: url = "http://127.0.0.1:8000/dashboard/login/"
In [29]: data = {}
In [30]: data["username"] = "admin"
In [31]: data["userpass"] = "123456"
In [32]: r = requests.post(url, data)
In [33]: r.status_code
Out[33]: 200
In [34]: r.content
Out[34]: b'\xe7\x99\xbb\xe5\xbd\x95\xe6\x88\x90\xe5\x8a\x9f'
In [35]: r.content.decode("utf8")
Out[35]: '登录成功'
In [36]: data["userpass"] = "12345"
In [37]: r = requests.post(url, data)
In [38]: r.content.decode("utf8")
Out[38]: '登录失败'
用户登录:
一个视图:
GET请求:展示用户登录页面
POST请求:执行用户登录
- 接收post过来的用户名与密码
- 验证用户与密码是否正确,根据用户名查询出对应的记录
记录不存在:用户不存在
记录存在:对比用户密码是否一致 - 返回结果
dashboard/views.py
dashboard/views.py
from django.shortcuts import render
from django.http import HttpResponse,QueryDict
# from django.contrib.auth.models import User
from django.contrib.auth import authenticate,login
# def login(request):
# if request.method == "POST":
# username = request.POST.get("username")
# userpass = request.POST.get("userpass")
# if username == "admin" and userpass == "123456":
# msg = "登录成功"
# else:
# msg = "登录失败"
# else:
# msg = "请求方法不被允许"
# return HttpResponse(msg)
def loginView(request):
if request.method == "POST":
username = request.POST.get("username")
userpass = request.POST.get("userpass")
# try:
# User.objects.get(username=username)
# except User.DoesNotExist:
# return HttpResponse("用户不存在")
user = authenticate(request, username=username, password=userpass)
if user is not None:
login(request, user)
return HttpResponse("用户登录成功")
else:
return HttpResponse("用户登录失败")
return render(request, 'login.html')
devops/urls.py
from django.conf.urls import url,include
from .views import index, loginView
urlpatterns = [
url(r'^$', index, name='index'),
url(r'^login/$', loginView, name='login')
]
devops/urls.py
from django.conf.urls import url,include
from .views import index, loginView
urlpatterns = [
url(r'^$', index, name='index'),
url(r'^login/$', loginView, name='login')
]
dashboard/templates/login.html
dashboard/templates/login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<ul>
<form method="post">
<li>
<span>用户名:</span>
<input type="text" name="username" />
</li>
<li>
<span>密码:</span>
<input type="password" name="userpass" />
</li>
<li>
<input type="submit">
</li>
</form>
</ul>
</body>
</html>
在浏览器访问http://127.0.0.1:8000/dashboard/login/ 用户名rock 密码654321
用户名密码正确显示:用户登录成功 ,否则显示:用户登录失败