利用Python写Api

2023-11-11

初学者,仅作笔记参考,因为没使用web框架,采用的原生sql进行数据查询有点呆板

from mysql.Database import Demo
from utils.tools import Tools
import flask,json
import datetime


api = flask.Flask(__name__)


# 登录接口
@api.route('/userLogin', methods=['post'])
def user_login():
    username = flask.request.json.get('username')
    password = flask.request.json.get('password')
    if username and password:
        demo = Demo()
        select_user = "select `username`, `password` from user where username = " + "'" + username + "'" + "and password = " + "'" + password + "'"
        result = demo.select(select_user)
        if result != None and result != '':
            ren = {'msg': '登录成功!', 'code': 200}
            return json.dumps(ren, ensure_ascii=False)
        else:
            ren = {'msg': '用户名不存在,请注册后再进行登录!', 'code': 500}
            return json.dumps(ren, ensure_ascii=False)
    else:
        ren = {'msg': '用户名或密码不能为空', 'code': 500}
    return json.dumps(ren, ensure_ascii=False)


# 用户注册
@api.route('/userRegister', methods=['post'])
def user_register():
    username = flask.request.json.get('username')
    password = flask.request.json.get('password')
    confirm_password = flask.request.json.get('confirm_password')
    mail = flask.request.json.get('mail')
    if username and password and confirm_password and mail:
        if len(str(password)) < 8:
            ren = {'msg': '密码不能小于8位', 'code': 500}
            return json.dumps(ren, ensure_ascii=False)
        if len(str(password)) > 50:
            ren = {'msg': '密码过长超过了50位', 'code': 500}
            return json.dumps(ren, ensure_ascii=False)
        if password != confirm_password:
            ren = {'msg': '密码与确认密码不一致', 'code': 500}
            return json.dumps(ren, ensure_ascii=False)
        # 无正则校验
        if len(str(mail)) < 6:
            ren = {'msg': '邮箱格式不正确', 'code': 500}
            return json.dumps(ren, ensure_ascii=False)
        if True:
            demo = Demo()
            now = datetime.datetime.now()
            date = Tools.formatDate(now)
            select_sql = "select username from user where username ="+"'"+username+"'"
            intall_sql = "INSERT INTO `user`(`username`, `password`, `confirm_password`, `mail`,`create_time`) VALUES ("+"'"+username+"'"+", "+"'"+password+"'"+", "+"'"+confirm_password+"'"+","+"'"+mail+"'"+","+"'"+date+"'"+")"
            try:
                count = demo.select_count(select_sql)
                if count == 0:
                    demo.install(intall_sql)
                    ren = {'msg': '注册成功!', 'code': 200}
                else:
                    ren = {'msg': '用户名已存在!', 'code': 500}
            except Exception as e:
                print(e)
                ren = {'msg': e, 'code': 500}
    else:
        ren = {'msg': '非法的提交数据', 'code': 500}
    return json.dumps(ren, ensure_ascii=False)


if __name__ == '__main__':
    api.run(port=8899, debug=True, host='127.0.0.1')

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用Python写Api 的相关文章

随机推荐

  • 线性回归(Linear Regression)

    引言 说到底 回归任务都是寻找特征与目标之间的关系 我们认为每一个特征或多或少 或积极或消极地对目标产生着影响 我们期望寻找数学表达式来表达出这种影响 一 回归模型 想象一下描述特征与目标之间最简单明了的关系是什么 当然是线性关系了 每个特
  • 解决RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors...CUDA_LAUNCH_BLOCKING=1

    完整报错 RuntimeError CUDA error device side assert triggeredCUDA kernel errors might be asynchronously reported at some oth
  • opencv 中Canny边缘检测算法原理加每一个(分)步骤的代码演示

    1 原理 1 噪声抑制 输入图像经过高斯平滑滤波 减少噪声的影响 2 计算梯度 在平滑后的图像上应用Sobel算子计算梯度幅值和方向 3 非极大值抑制 在梯度方向上 比较每个像素的梯度幅值与其相邻两个像素沿着梯度方向的梯度幅值 如果当前像素
  • 本科毕设研究记录(一)————小样本综述

    本科毕设记录 一 小样本综述 综述 问题定义 相关的领域 核心问题 经验风险最小化 Empirical Risk Minimization 不可靠的经验风险最小化 Unreliable Empirical Risk Minimizer 解决
  • 华为主题包hwt下载_hwt主题文件下载猫和老鼠

    hwt主题文件下载猫和老鼠app是一款针对华为手机精心设定的一款主题软件 软件主题是以经典的猫和老鼠动态图为主 各种不同风格的搞笑图片可以任意下载使用 当它们出现在你的手机屏保上时 让你聊天时更开心 设置方法比较简单 会有相关的教程 hwt
  • 动画的应用,西游记动画效果

    实现背景向后移动以及人物走路的动画效果 实现代码如下
  • AngularJS(13)-包含

    AngularJS 包含 使用 AngularJS 你可以使用 ng include 指令来包含 HTML 内容 实例
  • WIN10下搭建gcc编译环境

    安装make 1 下载make 3 81 链接 https pan baidu com s 1kj2CzmLvl tDTuHJRXKnBg 提取码 v7fh 2 直接安装 全选next 安装路径最好不要改动 3 进入系统属性 选择环境变量
  • 合天Weekly第二十一周

    分析代码可以看出是sql注入 首先使用order by 看下有几列 这里空格被过滤使用 绕过 当输入4的时候不回显所以为3列 提示flag在 falg 表里构造payload 1 union select 1 flag 3 from fla
  • mybatis.type-aliases-package的作用和用法

    第一种在mapper xml文件中的resultMap的type或者parameterType会用到自定义的POJO 其中resultType User 中 User就是自定义的POJO 此时可以使用完全限定名来指定这些POJO的引用 第二
  • lambda 和 Predicate 的妙用示例

    1 过滤集合数据的多种常用方法 public class DemoTest1 public static void main String args List
  • 数据挖掘和机器学习之间,主要有什么区别和联系?

    数据挖掘和机器学习的区别和联系 周志华有一篇很好的论述 机器学习和数据挖掘 可以帮助大家理解 数据挖掘受到很多学科领域的影响 其中数据库 机器学习 统计学无疑影响最大 简言之 对数据挖掘而言 数据库提供数据管理技术 机器学习和统计学提供数据
  • 手势识别Python-OpenCV

    目录 一 选题背景 5 二 设计理念 5 2 1 搭建平台 5 2 2 问题描述 5 2 3 过程概述 6 三 过程论述 6 3 1 数据集生成 6 3 1 1 标准化图片的采集 6 3 1 2肤色检测 7 3 1 3 特征提取 8 3 1
  • Linux系统基础命令

    Linux系统常用基本命令 ls 查看当前目录下所有文件 注 蓝色 文件夹 白色 普通文件 绿色 拥有执行权限的文件 红色 压缩文件 touch 示例 touch filename txt 在当前目录下创建一个文件 注 文件名区分大小写 文
  • 【LeetCode】83. 删除排序链表中的重复元素

    83 删除排序链表中的重复元素 简单 方法 一次遍历 思路 由于给定的链表是排好序的 因此重复的元素在链表中出现的位置是连续的 因此我们只需要对链表进行一次遍历 就可以删除重复的元素 从指针 cur 指向链表的头节点 随后开始对链表进行遍历
  • 【时间序列数据挖掘】ARIMA模型

    目录 0 前言 一 移动平均模型MA 二 自回归模型AR 三 自回归移动平均模型ARMA 四 自回归移动平均模型ARIMA 总结 0 前言 传统时间序列分析模型 ARIMA模型是一个非常灵活的模型 对于时间序列的好多特征都能够进行描述 比如
  • MYSQL数据库测评及整改

    1 查询数据库版本 select version 2 查询已安装的插件 show plugins 3 查询插件安装的位置 show variables like plugin dir 4 查询用户 选择数据库 select host use
  • 阿里云OCR图片识别

    阿里云OCR图片识别 请求参数 Body 请求示例 java 正常返回示例 错误码定义 阿里云OCR图片识别 单字识别 表格识别 旋转功能 准备条件 阿里云OCR图片识别API购买 初次购买1分钱500次接口调用 请求参数 Body 图像数
  • Java多线程——为什么弃用stop、suspend、resume方法

    初始的Java版本定义了一个stop方法用来终止一个线程 以及一个suspend方法用来阻塞一个线程直至另一个线程调用resume stop和suspend方法有一些共同点 都试图控制一个给定线程的行为 stop suspend和resum
  • 利用Python写Api

    初学者 仅作笔记参考 因为没使用web框架 采用的原生sql进行数据查询有点呆板 from mysql Database import Demo from utils tools import Tools import flask json