python flask sqlalchemy连接数据库流程介绍
作者:王大队长 发布时间:2024-01-23 18:34:36
1、安装flask_sqlalchemy和pymysql包
pip install flask-sqlalchemy
pip install pymysql
2、进行配置
使用Flask-SQLAlchemy扩展操作数据库,首先需要通过URL建立数据库连接,必须保存到Flask配置对象的SQLALCHEMY_DATABASE_URI中。
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask_test'
USERNAME = 'root'
PASSWORD = 'root'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
其中HOSTNAME为路由地址
PORT为端口号,我在创建数据库时没有更改,所以用的默认的3306端口号
DATABASE为数据库名字
后面两个参数为数据库用户名和密码
3、创建SQLALchemy实例
db = SQLAlchemy(app)
我这里创建的实例记为db
4、创建ORM类
创建这个类必须继承db.Model !!!
class Article(db.Model):
__tablename__ = "article"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(200), nullable=False)
content = db.Column(db.Text, nullable=False)
第二行设置数据库表名为article。第三行设置id项,将其设置为整数项,并且设置为主键以及自动增长。第四行设置title项,将其设置为含200个字符的字符串,并设置不能非空。第五行设置content项,将其设置为db.Text格式并且设置不能非空。
5、创建表
db.create_all()
然后就会发现,数据库中多出一张表:
当然,这张表目前还是空的
6、在表中增删查改数据
我们可以在一个视图函数中执行这些操作,当然也可以直接执行
@app.route("/article")
def article_view():
# 添加数据
article = Article(title="钢铁是怎样炼成的", content="xxx")
db.session.add(article)
db.session.commit()
# # 查询数据
# article = Article.query.filter_by(id=1)[0]
# print(article.title)
#
# # 修改数据
# article = Article.query.filter_by(id=1)[0]
# article.content = "yyy"
# db.session.commit()
#
# # 删除数据
# article = Article.query.filter_by(id=1)[0]
# db.session.delete(article)
# db.session.commit()
return "数据操作成功"
添加数据时没加id,是因为我们之前设置id的autoincrement为True,于是它会自动增加。
执行完发现数据库中多出了如下:
其他三步结果请自行查看。当然,如果想观察每一步的结果,在执行添加数据前最好最好先将其他三步加上注释,对于其他三步也是一样。
来源:https://blog.csdn.net/qq_55621259/article/details/126661725


猜你喜欢
- 在Apache和FastCGI上使用Django,你需要安装和配置Apache,并且安装mod_fastcgi。 请参见Apache和mod
- 1.什么是标准库(Standard Library)标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象2.Obj
- scrapy.FormRequestlogin.pyclass LoginSpider(scrapy.Spider): name =
- 一、Requests库的7个主要的方法1.request()构造请求,支撑以下的基础方法2.get()获取HTML页面的主要方法,对应于ht
- 最近在研究品牌如何演绎,当然,看的时候没有忘记本行,分析了一下他们的交互设计~~路易威登LV上图采用胶片展示多组信息——大片展示品牌渲染。利
- 一、简化前馈网络LeNetimport torch as tclass LeNet(t.nn.Module): def __init__(s
- 一、创建飞书机器人自定义飞书机器人操作步骤,具体详见飞书官方文档:《机器人 | 如何在群聊中使用机器人?》二、调用飞书发送消息自定义机器人添
- 顺序表即线性表的顺序存储结构。它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的。比
- 1.新建四个层,放入相应图片,模特层的z-index值设为0。2.把第一个层移到模特身上,找出衣服刚好穿上时层的top和left值,记下来,
- 代码如下: EXEC sp_rename '表名.[原列名]', '新列名', 'column
- pyhon读取文件很方便,但是,如果文件很大,而且还是一行文件,那就蛋疼了. 不过还好有read(size)方法,这个方法就是每次读取siz
- 示例函数为了开发类型检查器,我们需要一个简单的函数对其进行实验。欧几里得算法就是一个完美的例子: def gcd(a, b):
- 关于ajax的responseText乱码的问题这个问题让我和纠结百度了好多都说是javascript的编码问题但是我的 javascrip
- 一个简单的PHP循环一维数组的实例,先是把字符串按照一定的规则进行转换成为数组,然后再进行遍历输出,实际是一个很简单的方法,因为最近做的一个
- 一、根据vux文档直接安装,无需手动配置npm install vue-cli -g // 如果还没安装vue init ai
- 发现问题图片地址如下http://qximg.lightplan.cc/2016/09/11/1473574486942944.jpeg需要
- 本文实例讲述了python通过定义一个类实例作为ftp回调方法。分享给大家供大家参考。具体实现方法如下:class Writer: &nbs
- 前言前两篇我们分别爬取了糗事百科和妹子图网站,学习了 Requests, Beautiful Soup 的基本使用。不过前两篇都是从静态 H
- mysqld_safe脚本执行的基本流程:1、查找basedir和ledir。2、查找datadir和my.cnf。3、对my.cnf做一些
- 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有 创建计算列导致查询