Python Flask 使用数据库

pip install flask_sqlalchemy

官方文档:

Flask-SQLAlchemy — Flask-SQLAlchemy Documentation (3.1.x)

为了不报错 也 需要导入另外两个库

# pip install flask_sqlalchemy
# pip install mysqlclient

完整代码

import osfrom flask import Flask
from flask_sqlalchemy import SQLAlchemy
# pip install PyMySQL
# pip install flask_sqlalchemy
# pip install mysqlclient
app = Flask(__name__)class Config:# 配置数据库的链接SQLALCHEMY_DATABASE_URI = os.environ['MYSQL_ALL']# 动态追踪修改设置,如未设置只会提示警告SQLALCHEMY_TRACK_MODIFICATIONS = Falseapp.config.from_object(Config)
db = SQLAlchemy(app)class Role(db.Model):'''角色表'''__tablename__ = 'test_la_role'id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(32), unique=True)class User(db.Model):'''用户表'''__tablename__ = 'test_la_user'id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(128), unique=True)password = db.Column(db.String(128))role_id = db.Column(db.Integer, db.ForeignKey('test_la_role.id'))if __name__ == '__main__':with app.app_context():  # 激活应用上下文# 创建数据库引擎,如果是首次运行,需要创建数据库结构db.create_all()# 插入初始数据if not Role.query.first():role1 = Role(name='admin')db.session.add(role1)db.session.commit()role2 = Role(name='user')db.session.add(role2)db.session.commit()user1 = User(name='admin_user', password='admin123', role_id=role1.id)user2 = User(name='regular_user', password='user123', role_id=role2.id)db.session.add_all([user1, user2])db.session.commit()app.run(debug=True)

要创建表并插入数据,您已经有了基本框架和模型定义,接下来需要确保数据库连接配置正确,并且取消注释相关的操作代码。我将按照您的代码结构提供一个完善后的示例,包括创建表和插入初始数据的步骤。

确保您的数据库已经创建好了,且MYSQL_ALL环境变量正确设置为数据库连接字符串。例如,对于MySQL,它可能看起来像这样:

 

pymysql://username:password@localhost:port/dbname

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

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

相关文章

【生产力】VSCode 插件 Draw.io Integration

Henning Dieterichs制作的Draw.io Integration插件是一个为Visual Studio Code(VSCode)用户设计的扩展,它将流行的在线图表编辑器Draw.io的功能直接集成到VSCode编辑器中。这个插件使得用户能够在编写代码的同时创建、编辑和维护图表和流程图…

unity无法使用道路生成插件Road Architect(ctrl和shift无法标点)

切换一下布局就行了。 附:Road Architect教学地址

VUE3v-text、v-html、:style的理解

在Vue 3中,v-text、v-html和:style是三个常用的指令,它们各自具有不同的功能和用途。 v-text: v-text用于操作元素中的纯文本内容。它接受一个表达式,并将该表达式的值设置为元素的文本内容。如果元素原本有文本内容&#xff0c…

游戏引擎中的地形系统

一、地形的几何 1.1 高度图 记录不同定点的高度,对每个网格/顶点应用高度、材质等信息,我们每个顶点可以根据高度改变位移 但是这种方法是不适用于开放世界的。很难直接画出几百万公里的场景 1.2 自适应网格细分 当fov越来越窄的时候,网格…

MySQL:数据库的约束与表设计的简要理念

目录 7. 数据库的约束7.1 NOT NULL7.2 UNIQUE7.3 DEFAULT7.4 PRIMARY KEY7.5 FOREIGN KEY7.6 CHECK 8. 表的设计8.1 设计表的通用步骤8.2 实体之间的关系 7. 数据库的约束 约束可以理解成,数据库提供的一种针对数据的合法性验证的机制,数据库中经常会涉…

JavaEE企业级分布式高级架构师课程

教程介绍 本课程主要面向1-5年及以上工作经验的Java工程师,大纲由IT界知名大牛 — 廖雪峰老师亲自打造,由来自一线大型互联网公司架构师、技术总监授课,内容涵盖深入spring5设计模式/高级web MVC开发/高级数据库设计与开发/高级响应式web开发…

深度学习pytorch——GPU加速(持续更新)

使用 .to(device),以前使用 .cuda() ,但是现在基本不使用了。 代码示例: 查看电脑GPU运行情况: 使用Ctrl Shift ESC快捷键:

24计算机考研调剂 | 广西科技大学

广西科技大学算机科学与技术专业接受调剂 考研调剂招生信息 学校:广西科技大学 专业:工学->计算机科学与技术 年级:2024 招生人数:10 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 我院 0812 计算机科学与技术专业接受调…

目标检测上的diffusion

1 Title DiffusionDet: Diffusion Model for Object Detection(Shoufa Chen,Peize Sun,Yibing Song,Ping Luo)【ICCV 2023】 2 Conclusion This study proposes DiffusionDet, a new framework that formulates object detection as a denoisin…

吴恩达2022机器学习专项课程(一) 3.3 成本函数的公式

问题预览 模型的参数(w和b)有什么作用?不同的w和b对线性回归模型有什么影响?训练集里的y和线性回归模型预测的y(y帽)的区别是什么?成本函数的作用是什么?成本函数的公式是什么&…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(六)—— 二元分类

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战演绎 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 这篇文章咱们将深度学习应用到另一个常见任务…

【C语言题解】编写题解 1681: 数据结构-行编辑程序

原题链接数据结构-行编辑程序 - C语言网 (dotcpp.com) #include <stdio.h> #include <malloc.h> #define Elemetype char typedef struct SNode{int Data[1000];int Top; }*Stack,SNode; void Push (Stack,Elemetype); int Pop(Stack,Elemetype*); int TopStack(S…

STM32学习笔记(6_1)- TIM定时器定时功能原理

无人问津也好&#xff0c;技不如人也罢&#xff0c;都应静下心来&#xff0c;去做该做的事。 最近在学STM32&#xff0c;所以也开贴记录一下主要内容&#xff0c;省的过目即忘。视频教程为江科大&#xff08;改名江协科技&#xff09;&#xff0c;网站jiangxiekeji.com 现在开…

(ES6)前端八股文修炼Day2

1. let const var 的区别 var&#xff1a; var 是在 ES5 中引入的声明变量的关键字。 具有函数作用域&#xff0c;而不是块作用域&#xff0c;这意味着使用 var 声明的变量在函数内部是可见的。 变量可以被重复声明&#xff0c;而且变量的值可以在声明前使用&#xff0c;这可能…

jmeter链路压测

比如登录后返回token&#xff0c;业务打印上传的操作需要用到token 线程组中添加登录请求&#xff0c;并执行 1、添加登录并执行&#xff0c;查看结果 2、结果树中下拉选择正则表达式&#xff0c;将token参数和值复制粘贴到下方&#xff0c;将token值改为(.*?)&#xff0…

【Nebula笔记】简介及安装

目录 一、简介 (一) 什么是图数据库 二、安装 (一) 原生安装 (二) Docker & Docker compose 1. Docker安装 Linux Window 2. 部署NebulaGraph (三) to MAC 三、Nebula Graph Studio (一) 版本兼容性 (二) 原生安装 (三) Docker compose (四) 连接Nebula Gra…

python—接口编写部分

最近准备整理一下之前学过的前端小程序知识笔记&#xff0c;形成合集。顺便准备学一学接口部分&#xff0c;希望自己能成为一个全栈嘿嘿。建议关注收藏&#xff0c;持续更新技术文档。 目录 前端知识技能树http请求浏览器缓存 后端知识技能树python_api&#xff1a;flaskflask…

MySQL数据库(基础篇二)

一、简单查询 1.1 数据的备份还原 导出&#xff1a;先对数据库进行备份&#xff0c;然后提取备份文件中的sql语句导入&#xff1a; 方法一&#xff1a;创建和原始数据同名的数据&#xff0c;然后执行从备份文件中导出的sql语句【此方法不要修改sql语句】方法二&#xff1a;在数…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(四)

概览 从上一篇博文: Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(三)我们学到了 Swift 中完全自己撸码实现 SwiftHook 类似功能的基本思路、提出了两个“难关”,并首先解决了其中第一道难题。 在这一篇中,我们将会继续克服各种“艰难险阻”,…

Spark spark-submit 提交应用程序

Spark spark-submit 提交应用程序 Spark支持三种集群管理方式 Standalone—Spark自带的一种集群管理方式&#xff0c;易于构建集群。Apache Mesos—通用的集群管理&#xff0c;可以在其上运行Hadoop MapReduce和一些服务应用。Hadoop YARN—Hadoop2中的资源管理器。 注意&…