数据型网站 建设方案,提高网站排名的方法,外贸网站的域名,建设银行信用卡管理中心网站目录
前言
一、 安装必要的库
二、配置数据库连接 三、定义模型
四、操作数据库
1.添加用户
2.删除用户
3.更新用户信息
4查询所有用户
五、测试结果 前言 在Flask框架中#xff0c;数据库的操作是一个核心功能#xff0c;它允许开发者与后端数据库进行交互#xf…目录
前言
一、 安装必要的库
二、配置数据库连接 三、定义模型
四、操作数据库
1.添加用户
2.删除用户
3.更新用户信息
4查询所有用户
五、测试结果 前言 在Flask框架中数据库的操作是一个核心功能它允许开发者与后端数据库进行交互执行数据的增删改查操作。本文将详细介绍如何在Flask中连接并操作数据库包括使用Flask-SQLAlchemy扩展和直接使用MySQL的Python驱动。 常见的有三种操作方法使用 SQLAlchemy、使用 Flask-SQLAlchemy 连接 MySQL和直接使用 MySQL 的 Python 驱动本篇先讲述如何使用SQLAlchemy进行连接后续会对其他方式进行讲解。
一、 安装必要的库
首先安装Flask-SQLAlchemy和MySQL的Python驱动。可以通过以下命令安装
pip install -U SQLAlchemy
pip install pymysql # Python3 使用pymysql
pip install mysqlclient
二、配置数据库连接
在Flask应用中需要配置数据库的地址一般情况下不建议直接在项目头部配置此处只为演示建议写在config.py中进行变量配置这里的username等信息需要换成实际信息
from flask import Flask
from flask_sqlalchemy import SQLAlchemyapp Flask(__name__)
app.config[SQLALCHEMY_DATABASE_URI] mysql://username:passwordlocalhost/dbname
app.config[SQLALCHEMY_TRACK_MODIFICATIONS] False
db SQLAlchemy(app) 三、定义模型
在Flask-SQLAlchemy中模型是数据库表的Python类每个模型类代表数据库中的一张表。例如
class User(db.Model):__tablename__ usersid db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(80), uniqueTrue, nullableFalse)email db.Column(db.String(120), uniqueTrue, nullableFalse)def __repr__(self):return fUser {self.username}
这里定义了一个用户模型对应数据库中的用户信息表属性包括id、用户名和email对应的mysql表如下
CREATE TABLE users (id INT NOT NULL AUTO_INCREMENT,username VARCHAR(80) NOT NULL,email VARCHAR(120) NOT NULL,PRIMARY KEY (id),UNIQUE INDEX username_unique (username ASC),UNIQUE INDEX email_unique (email ASC)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;
四、操作数据库 配置好以上内容后我们就可以通过SQLAlchemy 提供的 ORM 功能操作数据库了我们简单的用CURD操作进行测试 ~
1.添加用户
# 添加用户路由
app.route(/add_user, methods[POST])
def add_user():data request.get_json()username data.get(username)email data.get(email)if not username or not email:return 缺少用户名或邮箱地址, 400# 检查 email 是否已存在existing_user User.query.filter_by(emailemail).first()if existing_user:return 邮箱已存在无法添加用户, 400new_user User(usernameusername, emailemail)db.session.add(new_user)try:db.session.commit()except IntegrityError:db.session.rollback()return 插入失败可能是用户名或邮箱重复, 400except Exception as e:db.session.rollback()return f数据库错误: {str(e)}, 500return 用户添加成功
2.删除用户
# 删除用户路由
app.route(/delete_user/int:user_id, methods[DELETE])
def delete_user(user_id):user User.query.get(user_id)if not user:return 用户不存在, 404db.session.delete(user)db.session.commit()return 用户删除成功
3.更新用户信息
# 更新用户路由
app.route(/update_user/int:user_id, methods[PUT])
def update_user(user_id):user User.query.get(user_id)if not user:return 用户不存在, 404data request.get_json()new_username data.get(username)new_email data.get(email)# 更新用户名和邮箱if new_username:user.username new_usernameif new_email:existing_user User.query.filter_by(emailnew_email).first()if existing_user and existing_user.id ! user_id:return 邮箱已存在无法更新用户信息, 400user.email new_emailtry:db.session.commit()except IntegrityError:db.session.rollback()return 更新失败可能是用户名或邮箱重复, 400except Exception as e:db.session.rollback()return f数据库错误: {str(e)}, 500return 用户更新成功
4查询所有用户
# 获取所有用户路由
app.route(/get_all, methods[GET])
def get_users():users User.query.all()return br.join([f{user.username} ({user.email}) for user in users])
五、测试结果 此时查询发生变化 至此我们完成了使用flask连接并操作数据库其实使用python开发后端项目非常的轻松相比结构缜密的springboot偶尔使用flask写一些小项目也是不错的选择哦。