摘要
本章主要介绍flask怎么连接到mysql数据库和实现数据库的增删改查
一、连接mysql数据库
1. install模块
pip installl SQLAlchemy==1.2.7
pip install pymysql
2. 配置__init__.py
(1)导入
from flask_sqlalchemy import SQLAlchemy
(2)配置mysql
# 配置链接
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3306/flask3'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
(3)初始化
SQLAlchemy(app=app) # 初始化app
二、实现数据库的增删改查
1.配置表 models.py
小本本:db, 表名: __table__name
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Student(db.Model):
s_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
s_name = db.Column(db.String(20), unique=True)
s_age = db.Column(db.Integer, default=18)
__table__name = 'student'
views.py中实现数据的操作
2. 创建表
@stu.route('/createtable/')
def create_db():
db.create_all()
return '创建成功'
3. 删除表
@stu.route('/dropstu/')
def drop_db():
db.drop_all()
return '删除成功'
4.增加数据
若想数据被提交到数据库,必须要用commit
使用的try-except函数实现如果没有创建成功回转的功能
mysql数据库具有事务性:原子性,一致性,隔离性,自由性
@stu.route('/createstu/')
def create_stu():
stu = Student()
stu.s_name = '小骨头%d' % random.randrange(1000)
stu.s_age = '%d' % random.randrange(20)
try:
db.session.add(stu)
db.session.commit()
# 事务性: 原子性, 一致性, 隔离性, 自由性
return '创建学生成功'
except:
db.session.rollback()
5.删除数据库
delete
@stu.route('/deletestu/')
def delete_stu():
stu = Student.query.filter_by(s_id=5).first()
db.session.delete(stu)
db.session.commit()
return redirect(url_for('stu.stu_all'))
6.修改数据库
2中方式,直接写和update方法
(1)直接
stu = Student.query.filter_by(s_id=5).first()
stu.s_name= '大骨头'
db.session.commit()
(2)update
Student.query.filter(Student.s_id == 5).update({'s_name': '英气逼人的小骨头'})
db.session.commit()
return redirect(url_for('stu.stu_all'))
7.查询数据库
查询也有3种,一种是原生sql语句, 一种是filter, 一种是fiter_by
(1)原生sql
sql = 'select * from student where s_name="小骨头224";'
stus = db.session.execute(sql)
(2)filter
此方法filter里面的内容必须要 【表名+表属性 == 名字】
stus = Student.query.filter(Student.s_name=='小骨头16')
(3)filter_by
stus = Student.query.filter_by(s_name='小骨头98')