• 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.查询数据表

    以上示例介绍完毕。

  • 相关阅读:
    Mac系统下Cypress使用初体验
    629. K个逆序对数组--(每日一难phase2--days11)
    hosts.allow和hosts.deny配置
    【目标检测竞赛总结】IEEE UV 2022 “Vision Meets Algae” Object Detection Challenge
    uniapp 配置并使用 VueX
    [javaweb]——spring框架之控制反转(IOC)与依赖注入(DI)
    ZABBIX新功能系列1-使用Webhook将告警主动推送至第三方系统
    域名不部署SSL证书有什么影响?
    python科学计算环境搭建
    开发-命名规范
  • 原文地址:https://blog.csdn.net/quan278905570/article/details/134067228