flask:用Flask-SQLAlchemy访问mysql

一,安装第三方库

$ pip3 install Flask-SQLAlchemy

二,建立到数据库的连接

import os
from dotenv import load_dotenvfrom flask import Flask,jsonifyfrom flask_sqlalchemy import SQLAlchemy# 加载变量
dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(dotenv_path=dotenv_path, verbose=True, override=True)
db_uri = os.getenv("SQLALCHEMY_DATABASE_URI")
print("打印配置项:")
print(db_uri)app = Flask(__name__)# 数据库信息
host = '127.0.0.1'
port = '3306'
database = 'mybase'
username = 'root'
password = 'rootpassword'# 数据库类型+连接数据库的插件,这里使用的pymysql
DB_URI = f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}'
# 配置数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
# 绑定Flask对象
db = SQLAlchemy()
db.init_app(app)from controller.admin import admin
from controller.user import userapp.register_blueprint(admin,url_prefix="/admin")
app.register_blueprint(user,url_prefix="/user")@app.errorhandler(404)
def page_not_found(error):data = {"status": "failed","code": 500,"msg": "错误的路径"}return jsonify(data), 404if __name__ == '__main__':app.run(debug=True)

三,查询数据

model类

from app import db# 设计数据库模型
class User(db.Model):# 指定表名称__tablename__ = 'user'id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(64), nullable=False)nickname = db.Column(db.String(256), nullable=False)age = db.Column(db.Integer, default=0)city = db.Column(db.String(256), nullable=False)

查询:

from flask import Blueprint,jsonify,render_template,requestfrom models.user import Useruser = Blueprint('user', __name__)@user.route("/list/")
def user_list():meta = {"title": "用户列表","code": 200,"msg": ""}# 得到数据库中的数据users = User.query.all()return render_template('user/list.html', meta=meta, users=users)

四,测试 效果 

image

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51汇编--定时器与计数器

51汇编--定时器与计数器2.用定时器1的方式2计数,T1脚接单脉冲发生器输出,用(P1.0~P1.6连。1.用定时器0的方式1定时,P1.7接发光二极管L7,使该发光二极管每秒钟。闪烁5次,要求采用中断方式。尝试改变闪烁频率,观…

2025年废棉开花机制造企业权威推荐榜单:化纤块开花机/废布专用开花机/纤维专用开花机源头厂家精选

在资源循环利用政策的推动下,废棉开花机已成为纺织废料再生行业的核心装备,其性能直接关系到纤维回收品质与生产效率。 废棉开花机作为纺织废料回收的关键设备,通过开松、分梳、清洁等工序,将废棉、废布和化纤块等…

2025年杭州工厂外贸代运营公司权威推荐榜单:海外社媒推广/海外社媒营销/外贸推广源头公司精选

在跨境电商高速发展与政策双重驱动下,杭州外贸代运营行业已形成专业化、精细化的服务生态。据行业报告显示,2024年中国电商代运营市场规模已突破2800亿元,年增长率达19.3%,其中长三角地区服务商占据全国40%以上市场…

51汇编--数码管显示

51汇编--数码管显示把LED_CS接到CS0,若接到其他位置,需要改段地址和位地址的D12~D14位。将内部RAM30H~32H单元中存储的6位十进制数显示在6个数码管上。要求编写将一个内存单元中的压缩BCD码转换为两个七段显示码的子…

深入解析:Isaac Lab 2.3深度解析:全身控制与增强遥操作如何重塑机器人学习

深入解析:Isaac Lab 2.3深度解析:全身控制与增强遥操作如何重塑机器人学习pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

51汇编--串口通信

51汇编--串口通信实现PC机与单片机之间的串口通信,波特率为2400bits/s。给PC机(使用查询方式),接收的数据存储在30H地址开始的内部RAM中。个字节的数据给单片机,单片机接收完数据后发送两个确认字节55H和AAH。本文…

51-OLED显示代码

51-OLED显示代码51单片机驱动OLED显示字符和汉字的基础代码,可以自己延申更多绘图代码。如果对启动信号,结束信号,应答信号,以及发送一个字节的命令稍加改动,也可以适配具有硬件IIC的MCU本文完全免费,非VIP文章,…

AI元人文:还论“物物交换协议”——价值、规则与共识催化

AI元人文:还论“物物交换协议”——价值、规则与共识催化 作者:岐金兰 日期:2025年11月8日 摘要 本文以“物物交换协议”为元起点,构建了一个理解人类文明的双体系模型:价值体系(可交换的“物”)与规则体系(保…

新定义RD8T36P48使用USCI0的TWI功能点亮OLED

新定义RD8T36P48使用USCI0的TWI功能点亮OLED我使用的是while循环等待发送完成标志位,这会阻塞程序的运行,还没想好怎么改,不过目前最重要的事就是配置好了TWI(我是头一次看到TWI,经过查询发现这个和IIC好像没区别…

qsl 2

// code by 樓影沫瞬_Hz17 #include <bits/extc++.h> using namespace std;#define getc() getchar_unlocked() #define putc(a) putchar_unlocked(a) #define en_ putc(\n) #define e_ putc( )using pii = pair…

unt

? 20251107上午 T1 正确性:下称连通块大小为该连通块内可用的度数和,初始时显然等于点数的二倍。关键性质,考虑用 \(w\) 最大的边将树分开后,所有达到最大不同块之间连边次数的方案,最后要么所有点都用完了,要么…

html5 canvas 文本渲染

一、html5 canvas 文本渲染Html5 Canvas Text HTML5 Canvas Text实例1 HTML5 Canvas Text文本居中实例更多: html5 canvas 简介 Canvas 事件绑定|Canvas事件处理 CanvasRenderingContext2D 整理

实用指南:东方仙盟修仙(五)赛博科技修仙养老是一种爱好

实用指南:东方仙盟修仙(五)赛博科技修仙养老是一种爱好pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

2025年河北叛逆不听话教育学校权威推荐榜单:不听话矫正机构/早恋矫正学校/孩子早恋管教学校精选

据行业数据显示,专业的叛逆不听话教育学校通过科学干预,能帮助85%以上的青少年显著改善行为问题,重回正常学习和生活轨道。 在当今教育环境下,青少年叛逆、不听话、早恋等问题日益受到家庭和社会的关注。专业的教育…

node项目架构

自己使用 koa2(基础服务)+ prisma(orm 框架,根据表自动生成实体+dao 对象)+tsoa(提供注解支持, 比如方便便携 controller 甚至 service,以及生成 openApi 文档) vs 使用 nestjs 框架! 我应该怎么抉择? 哪个…

python调用ffmpeg对截取视频片段,可批量处理

python调用ffmpeg对截取视频片段,可批量处理使用python的subprocess包执行ffmeg命令,批量截取视频片段本文完全免费,非VIP文章,如果您发现需VIP可看全文,请邮箱联系我:openwebsite@foxmail.com@目录python调用ff…

实用指南:`modprobe`命令 与 `KVM`模块 笔记251006

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

改善睡眠设备哪家专业:2025年最新排行

摘要 随着生活节奏加快,睡眠问题已成为现代人健康的主要挑战之一,2025年改善睡眠行业迎来科技革新,复合光舱和间歇性高低氧技术引领市场。本文基于权威数据和用户口碑,推出2025年改善睡眠公司TOP10排名,为读者提供…

2025年改善睡眠设备专业推荐排行榜:科技助力健康生活

摘要 随着现代生活节奏加快,睡眠问题已成为影响人们健康的重要因素。2025年改善睡眠行业迎来技术革新,各种创新设备和服务为睡眠障碍人群带来全新解决方案。本文基于权威数据和用户口碑,为您精选当下最值得信赖的改…

NIFI国际化

NIFI国际化1.概述 nifi 本身现在并不支持国际化,不过还是相对比较容易修改。 国际化啊应该分为几块 2. 国际化处理 2.1 前端的国际化 2.2 后端的国际化组件的国际化比如GETFILE组件 我们可以在NIFI的源码中 找到 GetF…