python测试开发django(24)--表单提交之post登录案例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了 python测试开发django(24)--表单提交之post登录案例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2265字,纯文字阅读大概需要4分钟。
内容图文
![python测试开发django(24)--表单提交之post登录案例](/upload/InfoBanner/zyjiaocheng/618/2ce602d823344a93a06bb92059163d20.jpg)
前言
注册和登录功能实现都是post请求接口,只不过注册是往数据库插入数据,登录时从数据库里面查询数据。本篇接着上一篇写个简单的登录页面请求,用户注册是密码加密存储,用户登录时候对输入的密码校验。
登录页面
templates/login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> <h1>欢迎登录!</h1> <form action="" method="post"> {% csrf_token %} <p> 用户名:<input type="text" id="id_username" name="username", required="required"> * </p> <p> 密码:<input type="text" id="id_username" name="password", required="required"> * </p> <p> <input type="submit" value="登录"> </p> </form> </body> </html>
视图与urls
查询数据库用户名和密码
def login(request): '''登录页面''' if request.method == "GET": return render(request, 'login.html') if request.method == "POST": # 查获取页面的用户名,密码 username = request.POST.get('username') psw = request.POST.get('password') # 查询用户名和密码 user_obj = Users.objects.filter(user_name=username, pwd=psw).first() if user_obj: return HttpResponse('登陆成功') else: return HttpResponse('用户名或密码错误')
urls.py访问地址
urlpatterns = [ # 新增用户 url(r'^register/', views.register), url(r'^login/', views.login), ]
密码加密make_password
密码如果明文存储到数据库的话不太安全,一般会加密存储,django里面提供了一套加密方法make_password,解密用check_password,需先导入
from django.contrib.auth.hashers import make_password,check_password
views.py里面写入数据库时,加个make_password方法转下就行了
# 第一种写法 -- 推荐 user = Users() user.user_name = username user.pwd = make_password(psw) #加密存储 user.mail = mail user.save()
此时需要将数据库中pwd的长度加大,不然会报错;
重新注册,存入的pwd数据就是加密后的了
校验密码check_password
登录的时候,我们需要校验用户对应的密码,由于前面加密存储密码了,校验的时候,先获取用户输入的密码,然后读取数据库对应用户密码,再通过check_password函数校验密码,密码一致返回True,不一致返回False。
def login(request): '''登录页面''' if request.method == "GET": return render(request, 'login.html') if request.method == "POST": # 先查询数据库是否有此用户名 username = request.POST.get('username') psw = request.POST.get('password') # 查询用户名和密码 users = Users.objects.filter(user_name=username).first() is_pwd=check_password(psw,users.pwd) if is_pwd: return HttpResponse('登陆成功') else: return HttpResponse('用户名或密码错误')
内容总结
以上是互联网集市为您收集整理的 python测试开发django(24)--表单提交之post登录案例全部内容,希望文章能够帮你解决 python测试开发django(24)--表单提交之post登录案例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。