问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

flask连接mysql数据库后数据库一直为empty set

发布网友 发布时间:2022-04-26 22:00

我来回答

2个回答

懂视网 时间:2022-04-09 16:48

我们将使用 Flask-SQLAlchemy扩展来管理我们应用程序的数据。这个扩展封装了SQLAlchemy 项目,这是一个 对象关系映射器 或者 ORM。ORMs 允许数据库应用程序与对象一起工作,而不是表以及 SQL。执行在对象的操作会被 ORM 翻译成数据库命令。

通常,我们如果建立数据库不当或者有需要增加我删除的东西,我们将会删除以前的数据库重新创建数据库,但在flask中,我们可使用SQLAlchemy-migrate来跟踪数据库的更新。

在此程序中,我们将采用 sqlite 数据库。sqlite 数据库是小型应用的最方便的选择,每一个数据库都是存储在单个文件里。

下面让我们来开始将它应用到我们的程序中去。

一、配置

1.添加新的配置到配置文件config.py中

技术分享

SQLALCHEMY_DATABASE_URI 是 Flask-SQLAlchemy 扩展需要的。这是我们数据库文件的路径。

SQLALCHEMY_MIGRATE_REPO 是文件夹,我们将会把 SQLAlchemy-migrate 数据文件存储在这里。

2.我们初始化数据库在microplog.py

技术分享

3.数据库模型的创建

(1)我们首先创建用户user表,我们创建三个字段在这个表里,包括 id,nickname,email,我们确定了用户表后,将它转换成代码

技术分享

(2)我们再建立一个posts表,用来描述一个用户所写的blog,一个post表里面有四个字段,包括id,timestamp,body,user_id,我们确定了posts表后,将它转换成代码

技术分享

注:(1)一个用户可以写多篇blog,所以我们将用户id作为posts表的外键。

  (2)我们已经在 User 类中添加一个新的字段称为 posts,它是被构建成一个 db.relationship 字段。这并不是一个实际的数据库字段。对于一个一对多的关系,db.relationship 字段通常是定义在“一”这一边。在这种关系下,我们得到一个 user.posts 成员,它给出一个用户所有的 blog。

  (3)字段是被作为 db.Column 类的实例创建的,db.Column 把字段的类型作为参数,并且还有一些其它可选的参数,比如表明字段是否唯一。

  (4)__repr__ 方法告诉 Python 如何打印这个类的对象。我们将用它来调试。

4.创建数据库

我们在上面已经把模型创建好了,下面我们开始创建数据库。flask-SQLAlchemy通过运行脚本来创建数据库,所以我们在这里编写脚本(db_create.py)

技术分享

创建好之后我们运行python db_create.py,我们可以看到它会自动生成一个microblog.db的文件。同时还会生成一个文件夹db_repository,里面还有一些文件,这是 SQLAlchemy-migrate 存储它的数据文件的地方。

5.数据库的迁移

数据库的迁移也是通过运行脚本来实现迁移的,这里我们创建一个脚本文件db_migrate.py

技术分享

创建好之后我们开始运行python db_migrate.py (注:此时我们将会看到有关SQLALCHEMY_TRACK_MODIFICATIONS的一个警告,我们只要在microblog.py中添加这样一句话就行了app.config[‘SQLALCHEMY_TRACK_MODIFICATIONS‘] = True)

SQLAlchemy-migrate 迁移的方式就是比较数据库,两者间的不同将会被记录成一个迁移脚本存放在迁移仓库中。迁移脚本知道如何去迁移或撤销它,所以它始终是可能用于升级或降级一个数据库。为了以防万一尽量在备份的前提下去迁移数据库。

技术分享

6.pycharm连接到数据库,以便更好地管理数据库

点击右边的database-》+-》DataSource-》sqlite-》找到项目中前面生成的microblog.db作为文件-》test connection-》ok

技术分享

技术分享

7.下面我们可以尝试在python控制台进行数据增和删

技术分享

 

flask_数据库

标签:技术分享   删除   行数据   初始化   成员   迁移数据   包括   config   程序   

热心网友 时间:2022-04-09 13:56

使用Flask,SQLAlchemy扩展操作数据库,首先需要建立数据库连接。数据库连接通过URL指定,而且程序使用的数据库必须保存到Flask配置对象的SQLALCHEMY_DATABASE_URI键中即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 用flask连接数据库进行数据可视化时出错,请大神帮忙看看 vue.js 中 如何阻止默认事件? 为什么vue的点击事件不能执行 vue事件绑定后事件处理函数中的对象会一直都是都是初始化时的那个对象... “vue v-on”支持哪些事件? 2015外企个人所得税5000元工资应该多少 在外企工作。。工资如何扣税??税率如何计算?? 费列罗外资企业公积金缴纳多少 请问外资企业要交哪些税?税率各是多少? 请问我现在外企,公司给交五险一金,税前工资4000,请问我税后拿到手的是多少钱(上海) 在外企月入四千我一个月要交五险一金是多少 外资企业4000元工资五金一险要交多少钱 外企一个月工资税一万,那么一个月税前工资多少 外企工资个人所得税怎么扣 我是一名外企的实习生,现在工资1800,我应该交什么税?金额又是多少呢?急急 比如在一家大的外资企业月薪是RMB3000,五险一金和个人所得税要交多少呢?交完所得税月薪剩下多少? 我将在一家外企工作,工资是税前5000,但是五险一金需要我自己交,请问最后我可以拿到多少 在上海外企,工资到手5000块,问公司为我交了多少税和四金呢 外企实习生的工资要扣多少税 在外企工作年工资七十五万用交多少税? flask-sqlalchemy为什么连接数据库 如何用flask实现一个web应用来显示在mysql数据库中查询到的内容_百度... flask-sqlalchemy教程的开始都是创建数据库,数据表,那py文件每一次执行... flask-sqlalchemy数据库自动更新 使用flask 框架开发 web 应用,初始化数据库的代码放在哪里最合适_百 ... 为什么用上数据库连接池,我的程序反而变慢了? 如何设置数据库连接池的数量 flask-sqlalchemy怎么对数据库已有表添加数据啊 为什么在python的flask框架中要使用SQLAlchemy而不使用MySQLdb?_百度... 谁能给我发一段完整的数据库连接池代码? 男朋友家里太穷,我要怎么办 男朋友家很穷但我们感情很好,你觉得应该怎么办? 和一个很穷的男朋友,该怎么办 男朋友太穷了,我快扛不住了? 男朋友很穷 我该怎么办 男朋友太穷了 我该怎么办 男友家太穷了,我该怎么办? 男朋友太穷了 怎么办? 男朋友很穷,我该怎么办? 我男朋友穷,怎么办?