• python:使用Flask-SQLAlchemy对数据库增删改查的简单示例


    以下将介绍Flask-SQLAlchemy对数据库增删改查的简单示例。

    一、安装所需的库

    pip install flask flask-sqlalchemy flask-mysql

    二、创建数据表

    本示例使用mysql创建数据库和表

    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) DEFAULT NULL,
      `age` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

     

    三、创建app.py文件

    1. # -*- coding: UTF-8 -*-
    2. from flask import Flask, request, jsonify
    3. from flask_sqlalchemy import SQLAlchemy
    4. app = Flask(__name__)
    5. #以下root为mysql数据库账号,123456为密码,localhost为数据库地址,demodb为数据库名
    6. app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:123456@localhost/demodb'
    7. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    8. db = SQLAlchemy(app)
    9. # 定义一个模型类:
    10. class User(db.Model):
    11. # 表的结构:
    12. id = db.Column(db.Integer, primary_key=True)
    13. name = db.Column(db.String(20))
    14. age = db.Column(db.Integer)
    15. @app.route('/')
    16. def hello_world():
    17. return 'Hello World!'
    18. # 插入一条记录:
    19. @app.route('/add', methods=['POST'])
    20. def add():
    21. name = request.json['name']
    22. age = request.json['age']
    23. new_user = User(name=name, age=age)
    24. db.session.add(new_user)
    25. db.session.commit()
    26. return jsonify({'message': 'User created successfully'})
    27. # 查询所有记录:
    28. @app.route('/query')
    29. def query():
    30. users = User.query.all()
    31. msg=""
    32. for user in users:
    33. msg += str(user.id) + ":" + user.name+"."
    34. print(msg)
    35. return msg
    36. # 更新一条记录:
    37. @app.route('/update', methods=['POST'])
    38. def update():
    39. id = request.json['id']
    40. user = User.query.get(id)
    41. if user:
    42. name = request.json['name'] if 'name' in request.json else user.name
    43. age = request.json['age'] if 'age' in request.json else user.age
    44. user.name = name
    45. user.age = age
    46. db.session.commit()
    47. return jsonify({'message': 'User updated successfully'})
    48. else:
    49. return jsonify({'message': 'User not found'}), 404
    50. # 删除一条记录:
    51. @app.route('/delete', methods=['POST'])
    52. def delete():
    53. id = request.json['id']
    54. user = User.query.get(id)
    55. if user:
    56. db.session.delete(user)
    57. db.session.commit()
    58. return jsonify({'message': 'User deleted successfully'})
    59. else:
    60. return jsonify({'message': 'User not found'}), 404
    61. if __name__ == '__main__':
    62. app.run(debug=True)

    四、运行程序

    运行程序后,以下使用postman工具模拟提交参数

    1.添加数据

    2.查询数据表

    以上示例介绍完毕。

  • 相关阅读:
    Linux安装Matlab运行时
    golang学习笔记——条件表达式
    spark学习笔记(十二)——sparkStreaming-RDD队列/自定义数据源/kafka数据源/DStream转换/DStream输出/优雅关闭
    技术分享 | SpringBoot 流式输出时,正常输出后为何突然报错?
    软件项目管理期中准备(自用,仅供参考)
    图书管理系统
    MySQL查询性能优化七种武器之链路追踪
    五分钟,手撸一个Spring容器!
    图像增强及运算篇之图像掩膜直方图和HS直方图
    【实验分享】CCIE—BGP反射器实验
  • 原文地址:https://blog.csdn.net/quan278905570/article/details/134067228