一、SQLAlchemy的初始化连接
提醒:在你的虚拟环境中安装(也就是你的主app所使用的python解释器)
1.首先安装数据库的中间件驱动
这里小编安装的是pymsql作为驱动,你也可以安装mysqldb或者其他的驱动模块
安装驱动命令:pip install PyMySql -i https://pypi.douban.com/simple
2.安装flask_sqlalchemy(一套ORM框架,orm也就是模型关系映射)
pip install flask_sqlalchemy -i https://pypi.douban.com/simple
3.初始化SQLAlchemy对象
4.在config配置文件中,增加相关配置信息 大写字母不要自行更改,否则app.config.from_object()可能找不到对应的值
# dialect+driver://username:password@host:port/database
DIALECT = "mysql" # 需要连接数据库的名称比如mysql ,oracle等
DRIVER = "pymysql" # 连接数据库的中间件 比如dbmysql mysqldb等
USERNAME = "root" # 连接数据库的账号
PASSWORD = "xxxx" # 数据库密码
HOST = "127.0.0.1" # 数据库地址
PROT = "3306" # 数据库端口号
DATABASE = "a_12306"
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PROT,
DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
5.测试一下数据库连接
好我们发现正常启动,木有报错
现在我们故意把密码修改错误 在试一次
好果然 报错了,这就说们我们初始化连接成功了
二、对数据库的操作部分
1.初始化一个数据库的表模型 比如新建一个数据库表
注意点:一定要继承db.Model这个类,db.String(这个值必须指定),
# 创建模型和表的映射 新增一个表
class Article(db.Model):
__tablename__ = "article" # 表名,如果不指定则取类名的小写字母
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(100), nullable=False)
content = db.Column(db.Text, nullable=False)
# 这句代码如果注释不会新增一个表
db.create_all()
2.数据库表新增数据
注意:其中这个表有个id不过是自增长的 我们可以省略
# 数据库插入一条数据
article = Article(title="西方文学", content="学习西方知识")
db.session.add(article)
db.session.commit()
3.查询数据
# 从数据库查询数据
result = Article.query.filter(Article.title == "西方文学1")
if result.first() is None:
print("查询到的结果为空")
else:
for info in result.all():
print(info.id)
print(info.title)
print(info.content)
4.修改数据
# 修改#
# 1、先把你需要修改的数据 查出来
result = Article.query.filter(Article.id == "1").first()
# 2、把这条数据,你需要修改的地方进行修改
result.title = "东方文学"
# 3、做事务的提交
db.session.commit()
5.删除数据
# 删除
# 1、需要把删除的数据查询出来
result = Article.query.filter(Article.id == "1").first()
# 2、把这个条数的数据删除掉
db.session.delete(result)
# 3、做事务的提交
db.session.commit()