当前位置:网站首页>开源一夏 | Web开发(七):登录实现及功能测试
开源一夏 | Web开发(七):登录实现及功能测试
2022-08-02 17:48:00 【InfoQ】

管理员登录一、处理登录、登出请求
mgr目录sign_in_out.pydjango.contrib.authauth_user
django.contrib.authsign_in_out.pyfrom django.http import JsonResponse
from django.contrib.auth import authenticate, login, logout
# 登录处理
def signin( request):
# 从 HTTP POST 请求中获取用户名、密码参数
userName = request.POST.get('username')
passWord = request.POST.get('password')
# 使用 Django auth 库里面的 方法校验用户名、密码
user = authenticate(username=userName, password=passWord)
# 如果能找到用户,并且密码正确
if user is not None:
if user.is_active:
if user.is_superuser:
login(request, user)
# 在session中存入用户类型
request.session['usertype'] = 'mgr'
return JsonResponse({'ret': 0})
else:
return JsonResponse({'ret': 1, 'msg': '请使用管理员账户登录'})
else:
return JsonResponse({'ret': 0, 'msg': '用户已经被禁用'})
# 否则就是用户名、密码有误
else:
return JsonResponse({'ret': 1, 'msg': '用户名或者密码错误'})
# 登出处理
def signout( request):
# 使用登出方法
logout(request)
return JsonResponse({'ret': 0})
二、创建 url路由
http://127.0.0.1:8080/mgr/sign.html
/api/mgr/signinbysms/urls.py # 凡是 url 以 api/mgr 开头的,
# 都根据 mgr.urls 里面的 子路由表进行路由
path('api/mgr/', include('mgr.urls')),
urls.pyfrom django.urls import path
from mgr import sign_in_out
urlpatterns = [
path('signin', sign_in_out.signin),
path('signout', sign_in_out.signout),
]
三、测试我们的代码
3.1测试登录信息
http消息import requests,pprint
payload = {
'username': 'byhy',
'aabbcc': '88888888'
}
response = requests.post('http://localhost/api/mgr/signin',
data=payload)
pprint.pprint(response.json())


3.2测试用户信息

# @Time : 2022/7/11 20:31
# @Author : 是Dream呀
# @File : test.py
import requests,pprint
payload = {
'action':'list_customer'
}
response = requests.get('http://127.0.0.1:8080/api/mgr/customers',
params=payload)
pprint.pprint(response.json())

边栏推荐
猜你喜欢

How to ensure the security of smart factories?

企业云成本管控,你真的做对了吗?

redis总结_分布式缓存

How Tencent architects explained: The principle of Redis high-performance communication (essential version)

mui中使用多级选择器实现省市区联动

载20(S)-人参皂苷/细胞穿膜肽-单克隆抗体-载丝裂霉素白蛋白纳米微球的制备

Wechat Gymnasium Appointment Mini Program Graduation Design Finished Works (7) Mid-term Inspection Report

租房小程序自动定位城市

Playing in the cloud | The key technology of Tianyi cloud object storage ZOS high availability is revealed

MySQL基本操作和基于MySQL基本操作的综合实例项目
随机推荐
Gear 月度更新|6 月
深圳地铁16号线二期进入盾构施工阶段,首台盾构机顺利始发
C# 术语
嵌入式Qt-做一个秒表
年轻人接棒大妈,金价跌回“4字头”,七夕迎黄金消费小热潮
Wechat Gymnasium Appointment Mini Program Graduation Design Finished Works (7) Mid-term Inspection Report
Navicat 连接Oracle时提示oracle library is not loaded的问题解决
千万级QPS下服务如何才能平滑启动
Since September, China has granted zero-tariff treatment to 98% of tax items from 16 countries including Togo
天翼云4.0分布式云赋能千行百业数字化转型
HDF驱动框架的API(2)
企业云成本管控,你真的做对了吗?
使用lodash替换js字符串中的变量
golang源码分析(33)pollFD
基于HDF的LED驱动程序开发(1)
今年上半年,我国公路建设总体形势持续向好
php弱类型-攻防世界lottery
我用这一招让团队的开发效率提升了 100%!
golang学习之七:并发编程基础(goroutine、channel、select)
Redis总结_实战篇