首页 > 其他分享 >flask学习03-RESTful风格用户注册及登录接口开发

flask学习03-RESTful风格用户注册及登录接口开发

时间:2023-11-26 22:13:02浏览次数:42  
标签:username 03 code return 用户注册 flask token user password

一、注册接口

class Register(Resource):
def post(self):
    data = request.get_json()  #request.json() 获取到请求的参数,得到一个字典对象
    #print(f'请求入参:{data}')
    username = data.get("username")
    password = data.get("password")
    if not username or not password:
    return jsonify({"code": 111, "msg": "用户名或密码不能为空"})
    if Users.query.filter_by(username=username).first() is not None:
    print('existing user')
    return jsonify({"code": 222, "msg": "账号已存在"})



    with current_app.app_context():
   user = Users(username=username,password=password)
   user.hash_password(password)
   db.session.add(user)
   db.session.commit()

    return {'status':200,'msg':'注册成功!',"data": {"username": username}}
二、登录接口
class Login(Resource):

def post(self):
args = reqparse.RequestParser()\
.add_argument('username', type=str, location='json', required=True, help="用户名不能为空")\
.add_argument("password", type=str, location='json', required=True, help="密码不能为空")\
.parse_args()
print(f"args: {args}")
user = Users.query.filter_by(username=args.get('username')).first()
if not user:
return {"code": 222, "msg": f"用户名或密码不正确"}
else:
if not user.is_active:
return {"code": 333, "msg": f"{user.username} not active"}
else:
# 验证密码
if user.verify_password(args.get('password')):
access_token = create_access_token(identity=user.username)
print(f"access_token:{access_token}")
return jsonify({
"code": "0",
"message": "success",
"data": {
"access_token": access_token,
"userid": user.id
}
})
else:
return {"code": 222, "msg": f"用户名或密码不正确"}

标签:username,03,code,return,用户注册,flask,token,user,password
From: https://www.cnblogs.com/wujily/p/17858059.html

相关文章

  • 2023-2024-1 20232303 《网络空间安全导论》第12周学习总结
    2023-2024-120232303《网络空间安全导论》第12周学习总结教材学习内容总结基于AI的学习参考资料《网络空间安全导论》使用博客园进行学习MarkDown/Mermaid排版教程......
  • Flask 使用Jinja2模板引擎
    Jinja2,由Flask框架的创作者开发,是一款功能丰富的模板引擎,以其完整的Unicode支持、灵活性、高效性和安全性而备受推崇。最初受Django模板引擎启发,Jinja2为Flask提供了强大的模板支持,后来也成为其他项目的首选。在本文中,我们将深入探讨Jinja2的特性、语法以及如何在Flask应用中使用......
  • Bypass 403 Forbidden 403页面绕过技巧
    介绍根据基础设施分析师所做的配置,有一些方法可以解决403禁止错误,通常是通过配置何时不允许您访问该目录或文件的某些资源。我创建了这个快速文档来演示一些技术,包括我已经使用它并设法通过403错误并访问数据库管理登录页面。一些技巧......
  • 2023-2024-1 20232403 《网络》第1周学习总结
    2023-2024-120232403《网络空间安全导论》第3周学习总结安全攻击的分类及常见形式1.被动攻击被动攻击的特性是对所传信息进行窃听和监测。攻击者的目标是获得线路上所传输的信息。信息泄露和流量分析就是被动攻击的例子。其中流量攻击较为熟悉,本周学习使用的工具wireshark就......
  • Reference and inspiration from China's strategy for addressing water pollution i
     AccordingtoChina'sthreelineonepermitmeasures,webelievethatthishasacertainreferencevalueforwaterpollutionissuesinAfrica.The"threelines"referstotheecologicalprotectionredline,theenvironmentalqualitybottom......
  • Flask Paginate实现表格分页
    flask_paginate是Flask框架的一个分页扩展,用于处理分页相关的功能。它可以帮助你在FlaskWeb应用程序中实现分页功能,让用户可以浏览大量数据的不同部分。本篇博文重点讲述在Web开发中,用paginate把所有数据进行分页展示,首先通过运用第三方库实现后端分页,然后再自己编写一个分......
  • 2023-2024-1 20231403 《计算机基础与程序设计》第九周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里2023-2024-1计算机基础与程序设计第九周作业这个作业的目标自学《计算机科学概论》第十、十一章,《C语言程序设计》第八章并完成云班课测试作业正文https://www.......
  • leetcode hot100-03 移动零
    移动零地址:https://leetcode.cn/classic/problems/move-zeroes/description/难点:在原数组的基础上进行移动保持相对顺序思考过程:思考过程:一开始没有考虑顺序的问题记录最后一个不是0的位置从左遍历数据如果为0则将数据与最后一位不是0的数据交换最后不是0的数据更......
  • flask一些特殊装饰器
    直接上代码了"""#@Time:2023/11/26#@Author:bgm#@File:mange.py"""fromflaskimportFlask,abort,request,g,jsonifyapp=Flask(__name__)#@app.before_first_request#3.0版本之后已经弃用#-------------------------......
  • AcWing 903. 昂贵的聘礼 (超级源点 + 等级限制 + 抽象建图
    package算法提高课;importjava.util.Arrays;importjava.util.Scanner;publicclassacw903{staticintm,n;staticint[]dis,level;staticboolean[]st;staticint[][]g;/**思路:首先用到了虚拟源点,加入了等级限制*......