Python Web 开发 | Flask(一) 简单实现用户注册、登录、注销、查询接口 | 初学者案例 | 简单封装响应数据 | 使用 Postman 进行接口测试

本文介绍了使用Python的Flask框架,为初学者详细讲解如何实现用户注册、登录、注销和查询接口。通过创建数据表、编写相关模块,如utils、mysql、models等,并利用Postman进行接口测试,确保功能正常运行。
摘要由CSDN通过智能技术生成


Flask 是一个使用 Python 编写的轻量级 Web 应用程序框架。接下来以初学者的角度来编写后端的接口,不涉及前端代码,即没有用到 Flask 的模板渲染。

运行环境:

  • windows11
  • PyCharm 专业版 2021.3
  • MySQL 5.7.36
  • Navicat 15 数据库管理工具
  • Postman 接口请求工具
  • Anaconda 3
  • python 3.8
  • flask 2.2.0
  • flask_sqlalchemy 2.5.1 ,flask 框架支持ORM 数据持久化的库

案例的文件结构:
在这里插入图片描述

一、前置准备

1.1 创建数据表

本次小案例,只用到一张用户表 sys_user

在这里插入图片描述

建表的 MySQL 语句:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user`  (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `user_password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`user_id`) USING BTREE,
  UNIQUE INDEX `user_name`(`user_name`) USING BTREE COMMENT '用户名称不可重复'
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sys_user
-- ----------------------------
INSERT INTO `sys_user` VALUES (1, '小王', '123456');
INSERT INTO `sys_user` VALUES (2, '小绿', '123456');
INSERT INTO `sys_user` VALUES (3, 'uni', '123456');

SET FOREIGN_KEY_CHECKS = 1;

1.2 修改 Postman 的请求头

最后在进行接口测试时,需要通过 JSON 传值,这里需要指定为 application/json; 的格式,为避免出现中文乱码,最好加上charset=utf8
在这里插入图片描述

Content-Type = application/json;charset=utf8

二、具体实现

2.1 utils.py

Flask 框架在处理请求后,返回的数据必须是可转化为JSON的类型,即字典类型。此工具文件中的方法支持将列表里的所有 User 对象转化到 dict 字典中,其中的 key 为下标,value 则为 Use对象调用 dict() 的结果,这个方法是自定义的,待会在 models.py 里会说明。

"""
    将列表里的对象逐一转化为字典, 对象需提供 dict 方法
"""
def model_list_to_dict(modelList: list):
    result = {
   }
    for index, model in enumerate(modelList):
        result.update({
   index: model.dict()})
    return result

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值