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文件

python 复制代码
# -*- coding: UTF-8 -*-
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
#以下root为mysql数据库账号,123456为密码,localhost为数据库地址,demodb为数据库名
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:123456@localhost/demodb'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)


# 定义一个模型类:
class User(db.Model):
    # 表的结构:
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    age = db.Column(db.Integer)


@app.route('/')
def hello_world():
    return 'Hello World!'


# 插入一条记录:
@app.route('/add', methods=['POST'])
def add():
    name = request.json['name']
    age = request.json['age']
    new_user = User(name=name, age=age)
    db.session.add(new_user)
    db.session.commit()
    return jsonify({'message': 'User created successfully'})


# 查询所有记录:
@app.route('/query')
def query():
    users = User.query.all()
    msg=""
    for user in users:
        msg += str(user.id) + ":" + user.name+"."
    print(msg)
    return msg


# 更新一条记录:
@app.route('/update', methods=['POST'])
def update():
    id = request.json['id']
    user = User.query.get(id)
    if user:
        name = request.json['name'] if 'name' in request.json else user.name
        age = request.json['age'] if 'age' in request.json else user.age
        user.name = name
        user.age = age
        db.session.commit()
        return jsonify({'message': 'User updated successfully'})
    else:
        return jsonify({'message': 'User not found'}), 404


# 删除一条记录:
@app.route('/delete', methods=['POST'])
def delete():
    id = request.json['id']
    user = User.query.get(id)
    if user:
        db.session.delete(user)
        db.session.commit()
        return jsonify({'message': 'User deleted successfully'})
    else:
        return jsonify({'message': 'User not found'}), 404


if __name__ == '__main__':
    app.run(debug=True)

四、运行程序

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

1.添加数据

2.查询数据表

以上示例介绍完毕。

相关推荐
IT古董35 分钟前
第四章:大模型(LLM)】06.langchain原理-(3)LangChain Prompt 用法
java·人工智能·python
时序数据说3 小时前
时序数据库市场前景分析
大数据·数据库·物联网·开源·时序数据库
fantasy_arch5 小时前
pytorch例子计算两张图相似度
人工智能·pytorch·python
听雪楼主.7 小时前
Oracle Undo Tablespace 使用率暴涨案例分析
数据库·oracle·架构
我科绝伦(Huanhuan Zhou)7 小时前
KINGBASE集群日常维护管理命令总结
数据库·database
妖灵翎幺7 小时前
Java应届生求职八股(2)---Mysql篇
数据库·mysql
HMBBLOVEPDX7 小时前
MySQL的事务日志:
数据库·mysql
WBluuue7 小时前
数学建模:智能优化算法
python·机器学习·数学建模·爬山算法·启发式算法·聚类·模拟退火算法
赴3357 小时前
矿物分类案列 (一)六种方法对数据的填充
人工智能·python·机器学习·分类·数据挖掘·sklearn·矿物分类
大模型真好玩7 小时前
一文深度解析OpenAI近期发布系列大模型:意欲一统大模型江湖?
人工智能·python·mcp