当前位置: 首页 > news >正文

flask后端开发(8):Flask连接MySQL数据库+ORM增删改查

目录
  • 数据库初始化
  • 数据库连接
  • 创建数据库表
  • 添加用户
  • 查询用户
  • 更新用户
  • 删除

在Flask中,很少会使用pymysql直接写原生SQL语句去操作数据库,更多的是通过SQLAichemy提供的ORM技术,类似于操作普通Python对象一样实现数据库的增删改查操作,而Flask-SQLAlchemy是需要单独安装的,因为Flask-SQLAlchemy依赖SQLAlchemy,所以只要安装了Flask-SQLAlchemy,SQLAlchemy会自动安装。

pip install flask-sqlalchemy

数据库初始化

在终端中输入

# 登录数据库
mysql -u root -p
# 创建数据库(支持中文)
CREATE DATABASE database_learn DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

数据库连接

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text

app=Flask(__name__)

# 设置连接数据库的信息
HOSTNAME='127.0.0.1'
PORT=3306
USERNAME='root'
PASSWORD='123456'
DATABASE='database_learn'

# 设置连接数据库的URL
app.config['SQLALCHEMY_DATABASE_URI']=f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4'


# 在app.config中设置好连接数据库的信息,然后使用SQLLichemy(app)创建一个db对象
# SQLAlchemy会自动读取app.config中连接数据库的信息

db=SQLAlchemy(app)

with app.app_context():
    with db.engine.connect() as conn:
        result=conn.execute(text("select 1"))
        print(result.fetchone())

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

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

一个ORM模型与一个数据库中的一张表对应

创建数据库表

其实就是创建一个ORM模型,而且user表有属性是username和password
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

添加用户

在这里插入图片描述

在这里插入图片描述

查询用户

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
我刷新了两次add页面,所以有两个添加张三

更新用户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

删除

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/35986.html

相关文章:

  • MongoDB03 - MongoDB索引,事务和安全
  • 2025年2月科技热点深度解析:AI竞赛、量子突破与开源革命
  • 图论算法篇:BFS宽度优先遍历
  • 考研/保研复试英语问答题库(华工建院)
  • 学习路程二 LangChain基本介绍
  • Docker基础实践与应用举例
  • Redis——用户签到BitMap,UV统计
  • Css3重点知识讲解
  • Mysql的数值类型
  • GEO数据结构
  • SpringSecurity的核心过滤器-CsrfFilter
  • Qt如何将数据传入labview,Qt又如何从labview中读取数据?
  • 利用python和gpt写一个conda环境可视化管理工具
  • 网络安全系统概述 网络安全系统分为几级
  • 为AI聊天工具添加一个知识系统 之121 详细设计之62 神经元元模型函子(虚机构造型)
  • 鸿蒙5.0实战案例:基于原生能力的横竖屏旋转适配
  • 【安装及调试旧版Chrome + 多版本环境测试全攻略】
  • 学习路程四 向量数据库Milvus安装与连接
  • 【Vue.js 和 React.js 的主要区别是什么?】
  • 官方文档学习TArray容器
  • Nginx代理ElasticSearch
  • 【聊天室后端服务器开发】功能设计-框架与微服务
  • Linux编辑器
  • 如何让传统制造企业从0到1实现数字化突破?
  • PHP 使用 Redis
  • Websock Demo(一)前端代码
  • 四步彻底卸载IDEA!!!
  • 小白爬虫——selenium入门超详细教程
  • 实验3 知识表示与推理
  • LabVIEW电能质量分析软件