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

以上示例介绍完毕。

相关推荐
我科绝伦(Huanhuan Zhou)几秒前
脚本再升级,兼容Oracle 26ai一键安装
数据库·oracle
biuyyyxxx5 分钟前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
极客数模17 分钟前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
野生绿箭侠33 分钟前
Ncos 2.3.2 版本集成达梦数据库
数据库
仍然.1 小时前
MYSQL--约束
数据库·mysql
乡野码圣1 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
亓才孓2 小时前
[数据库]应该注意的细节
数据库·sql
小鸡吃米…2 小时前
机器学习中的代价函数
人工智能·python·机器学习
Li emily3 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_561359673 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python