flask crud mysql_flask 实现mysql数据库的CRUD

摘要

本章主要介绍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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值