脚本宝典收集整理的这篇文章主要介绍了6Django-跑通用户登录,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一后端:
1创建应用:
会话保持需要后端创建一个令牌给前端,下次前端再请求访问时带上没有过期的令牌即可,因此我们单拎出来一个应用专门处理会话保持
D:PycharmProjectslinuxTangblog>python manage.py startapp dtoken
2注册应用:
INSTALLED_APPS = [ 'dtoken', ]
3编写dtoken的视图函数:
import hashlib import json from django.http import JsonResponse from user.models import UserProfile # Create your views here. #因功能单一只有post所以就用函数写了 def tokens(request): if request.method != 'POST': result = {'code':201, 'error':'请求方式并非post'} return JsonResponse(result) #获取请求体 json_str = request.body #将请求体转换为python串 json_obj = json.loads(json_str) #取数据 username = json_obj.get('username') password = json_obj.get('password') #验证用户名和密码 try: user = UserProfile.objects.get(username=username) except Exception as e: print('用户名验证失败%s'%(e)) result = {'code':208,'error':'用户名不存在'} return JsonResponse(result) #给明文密码加密 hash_object = hashlib.md5() hash_object.update(password.encode()) pwd = hash_object.hexdigest() #比对密码 if pwd != user.password: result = {'code':209,'error':'提交的用户名或密码不正确'} return JsonResponse(result) result = {'code':200, 'username':username, 'data':{}} return JsonResponse(result)
4绑定路由:
from user import views as user_views from dtoken import views as dtoken_views from django.conf.urls.static import static from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('test_cors',views.test_cors), path('v1/users',user_views.UserViews.as_view()), path('v1/tokens',dtoken_views.tokens), ] urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
二前端
1前端页面编写提交数据方法:
<body> <div class="main"> <ul class="right-form"> <h2>Login:</h2> <li><input type="text" class="username" name="username" /></li> <li><input type="password" class="password" name="password"/></li> <input type="button" value="登录" oncliick="login()"> </ul> </div> </body>
<script> function login(){ var username = $('.username').val(); var password = $('.password').val(); var post_data = {"username":username,"password":password}; $.ajax({ type:'post', contentType:'application/json', <!--约定后端传回的数据类型--> dataType:'json', <!--要传走的数据--> data:JSON.stringify(post_data), url:'http://127.0.0.1:8000/v1/tokens', success: function (result){ if (result.code == 200){ alert('登录成功') }else{ alert(result.error) } } }) }</script>
</html>
2浏览器访问登录页面登录测试:
http://127.0.0.1:5000/login
以上是脚本宝典为你收集整理的6Django-跑通用户登录全部内容,希望文章能够帮你解决6Django-跑通用户登录所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。