通过几天的了解咱们以及对Flask有了初步的认识,在学习完表单后咱们来看看数据库,数据库想必都不陌生吧,可是在python中咱们能够用pymysql来连接,但在Flask中咱们如何来连接数据库呢?首先在链接数据库前先引入一个SQLAlchemy,我来介绍介绍。html
SQLALchemy 其实是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是经过 Python 对象来操做数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提高python
SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操做。flask-sqlalchemy 是一个简化了 SQLAlchemy 操做的flask扩展。mysql
下面来讲一个如何安装SQLAlchemy :sql
安装 flask-sqlalchemy:数据库
pip install flask-sqlalchemy编程
若是链接的是 mysql 数据库,须要安装 mysqldb:flask
pip install flask-mysqldbsession
数据库可想而知,确定离不开增~删~改~查,下边来简单介绍一下:oracle
上代码:app
# -*- 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若是不习惯能够选择原生的代码
原生的格式为 :