当前位置:Gxlcms > 数据库问题 > flask 数据库操作

flask 数据库操作

时间:2021-07-01 10:21:17 帮助过:30人阅读

Object-Relation Mapping.

中文意为 对象-关系映射

其实它就是模型对象的概念,把数据库的信息映射成一个个对象来操作,

而不需要编写sql语句,简单来说就是面向对象编程的概念。

flask 中的SQLAlchemy 就是一个ORM框架,它依赖于pymysql,使用关系对象映射对数据库进行操作

SQLAlchemy 的安装命令:

pip install flask-sqlalchemy

 

下面就用代码展示使用SQLAlchemy对数据库进行增删改查的操作:

 

# -*- encoding: utf-8 -*-
from flask import Flask from flask_sqlalchemy import SQLAlchemy #导入时间模块 import datetime,time
#建立对象 app = Flask(__name__)
#建立数据库对象 db = SQLAlchemy(app)
#导入配置文件 app.config.from_pyfile(‘config.ini‘)


#建立数据库类
class Student(db.Model): #声明表名 __tablename__ = ‘student‘ #id字段 id = db.Column(db.Integer,primary_key=True) #name字段 name = db.Column(db.String #password字段 password = db.Column(db.String)
#日期时间字段 shijian = db.Column(db.DateTime)
#日期 date = db.Column(db.Time)
#性别 gender = db.Column(db.Enum)
#身高 height = db.Column(db.DECIMAL)
#文本 con = db.Column(db.Text)
#时间 time = db.Column(db.Time)
@app.route(‘/‘) def index(): #将对象属性赋值入库 #将当前的生日期时间格式化为mysql的日期时间格式 student = Student(
shijian = datetime.datetime.now(), #格式化日期,把时间去掉,只留日期 date = datetime.datetime.now().strftime("%Y-%m-%d"), #只取时间需要导入time模块,格式化时间 time = time.strftime(‘%H:%M:%S‘)   ) #调用入库方法 db.session.add(student) return ‘入库操作‘
#数据库的删除操作 @app.route(‘/del‘) def delt(): #删除根据某个字段做删除,filter_by可以理解为where条件限定 #翻译为 delete from Student where id = 1 Student.query.filter_by(id=3).delete() return ‘这里是删除操作‘
#数据库的修改操作 @app.route(‘/edit‘) def edit_user(): #根据某个字段做修改操作 #翻译为 update student set name = ‘张三’ where id= 2 Student.query.filter_by(id=4).update({‘name‘:‘张三‘}) return ‘这里是修改操作‘   #数据库的查询操作 @app.route(‘/select‘) def select_user(): #简单的全量查询 #翻译为 select * from student # ulist = student.query.all() # print(ulist) # for item in ulist: # print(item.name)
#只取一条,没有last取值方法 #翻译为select * from user limit 1 ulist = User.query.first() print(ulist)  
if __name__ == "__main__": app.run()   当然SQLAlchemy这种对数据库的操作方法也有弊端,可能有些人也不习惯用, 也可以用原生的sql语句对数据库进行操作。如: items = db.session.execute(‘select * from student order by id‘) #将结果集强转为;list items = list(items) print(items) 其中的execute方法是依赖于pymysql进行执行操作的,所以也可以使用原生sql语句操作

 

 

flask 数据库操作

标签:table   orm框架   编程   lis   没有   .exe   span   return   操作方法   

人气教程排行