6Django-跑通用户登录

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。
标签: