Flask~~(SQLAlchemy的安装设置及数据库的基本使用操作----增~删~改~查)
经过几天的了解我们以及对Flask有了初步的认识,在学习完表单后我们来看看数据库,数据库想必都不陌生吧,但是在python中我们可以用pymysql来链接,但在Flask中我们如何来链接数据库呢?首先在连接数据库前先引入一个SQLAlchemy,我来介绍介绍。
SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升
SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的flask扩展。
下面来说一个如何安装SQLAlchemy :
安装 flask-sqlalchemy:
pip install flask-sqlalchemy
如果连接的是 mysql 数据库,需要安装 mysqldb:
pip install flask-mysqldb
数据库可想而知,肯定离不开增删改~查,下边来简单介绍一下:
上代码:
# -*- encoding: utf-8 -*- from flask import Flask,render_template #导入第三方链接库aql点金数 from flask_sqlalchemy import SQLAlchemy #建立对象 app=Flask(__name__) #载入配置文件 app.config.from_pyfile('config.ini') #指定数据库链接还有库名 # app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:mysql@127.0.0.1:3306/myflask?charset=utf8' #指定配置,用来省略提交操作,也可以放在配置文件中更简单 # app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True #建立数据库对象 db = SQLAlchemy(app) #建立数据库,用来映射数据库表,将数据库的模型作为参数传入 class User(db.Model): #声明表明 __tablename__ = 'user' #建立字段函数 id = db.Column(db.Integer,primary_key = True) name = db.Column(db.String(200)) password = db.Column(db.String(200)) #数据库的查询操作(查) @app.route('/select') def select_user(): #简单的全量查询 #翻译为 select * from user # ulist = User.query.all() # for i in ulist: # print(i.name) # #只取一条 # #翻译为 select * from user limit 1 # ulist = User.query.first() # print(ulist.name) #使用原生的sql语句(查) #翻译为 select * from user order by id desc limit 1,2 item = db.session.execute('select * from user order by id desc limit 1,2') #将结果集强转为list item = list(item) print(item) #使用原生语句进行修改操作 # db.session.execute('update user set password ="321000" where id = 6 ') #将动态数据传输给模板 return render_template('sql.html',item=item) 这里跳转的的网页又自己随意定义一个模块 #数据库的修改操作(改) @app.route('/edit') def edit_user(): #根据字段做修改操作 #翻译为 update user set name='张三' where id=4 User.query.filter_by(id = 4).update({'name':'张三'}) return '这里是修改' #数据库的删除操作(删) @app.route('/del') def del_user(): #根据某个字段做删除,filter_by 可以理解为where条件限定 #翻译为 delete from user where id=1 User.query.filter_by(id = 3).delete() User.query.filter_by() return '这里是删除操作' #数据库的入库操作(增) @app.route('/') def index(): #增,入库逻辑 #声明对象 user = User(name='隔壁老王',password='123123') #调用添加方法 db.session.add(user) #提交入库 # db.session.commit() return '这里是首页' if __name__ == "__main__": app.run()
上边代码中提到了return中返回的模板文件,实现动态的数据展示,简单代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>动态数据展示</title> <style> table{ background-color:blueviolet; border: solid 3px gold; padding: 10px; } </style> </head> <body> <table> {# 对数据进行p遍历输出 #} {% for i in item%} <tr> <td>{{i.id}}</td> </tr> <tr> <td>{{i.name}}</td> </tr> <tr> <td>{{i.password}}</td> </tr> {% endfor %} </table> </body> </html>
注:
以上就是flask连接数据库的增删改查
以上又两种数据库的增删改查,SQLAlchemy如果不习惯可以选择原生的代码
原生的格式为 :
item = db.session.execute(‘sql语句’)
总结:
SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。
优点 :
只需要面向对象编程, 不需要面向数据库编写代码.
对数据库的操作都转化成对类属性和方法的操作.
不用编写各种数据库的sql语句.
实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.
不在关注用的是mysql、oracle…等.
通过简单的配置就可以轻松更换数据库, 而不需要修改代码.
缺点 :
相比较直接使用SQL语句操作数据库,有性能损失.
根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失。
感谢阅读!
语句欣赏:
智慧源于勤奋,伟大出自平凡。
- 二:flask_sqlalchemy 对数据库进行基本操作
- django-10-数据库使用04 后台安装配置及增加用户对数据库基本读写操作
- python Sublime Text3的使用基本配置操作&&SublimeREPL插件的安装及快捷键设置
- Flask中之数据库框架和模型类四:再述SQLAlchemy配置,表的操作和基本操作之增删改查
- flask-sqlalchemy基本操作数据库
- MySQL5.5.22版本安装配置以及基本命令的使用和管理数据库备份与恢复操作详解
- Python使用Flask-SQLAlchemy连接数据库操作示例
- flask学习windows版(一)环境配置以及注意事项和数据库flask-sqlalchemy的安装使用
- 此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象
- flask-sqlalchemy 数据基本操作
- 【VC++ 中使用ADO操作数据库学习笔记】 基础环境的设置
- Python的Django框架中使用SQLAlchemy操作数据库的教程
- .net设置启动窗口,数据库基本操作
- python Selenium安装、启动设置、基本操作
- Python的Django框架中使用SQLAlchemy操作数据库的教程
- linux下安装greeplum数据库基本操作
- flask-sqlalchemy 数据基本操作--实例
- 使用Flask-SQLAlchemy管理数据库
- 使用Xtuils3做基本的数据库操作
- 织梦CMS安装使用教程 系统基本参数设置之附件设置