Flask对数据库的操作-----

首先得做好做基本的框架

# -*- encoding: utf-8 -*-
from flask import Flask,render_template

#导入第三方连接库sql点金术
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/my_flask?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('/')
def index():
     return "这是首页"




if __name__ == "__main__":
    app.run()

  

对数据库的增

@app.route('/')
def index():
    #增,,入库逻辑
    #声明对象
    user = User(name = '你好你好', password = '456456')
    #调用添加方法
    db.session.add(user)
    #提交入库
    # db.session.commit()

    return '这里是首页'

  

对数据库的删

@app.route('/del')
def del_user():
    #根据某个字段做删除,filter_by 可以理解为where条件限定
    #翻译为 delete from user where id = 1
    User.query.filter_by(id = 3).delete()
    return '这里是删除操作'

  

对数据库的改

@app.route('/edit')
def edit_user():
    #根据某个字段做修改操作
    #翻译为 update user set name = '张三' where id = 2
    User.query.filter_by(id=5).update({'name':'张三'})
    return '这里是修改操作'

 

对数据库的查

@app.route('/select')
def select_user():
    #简单的全量查询
    #翻译为 select * from user
    ulist = User.query.all()
    print(ulist)
    for item in ulist:
        print(item.id,item.name)

    #只取一条
    #翻译为select * from user limit 1
    ulist = User.query.first()
    print(ulist)


    #使用原生的sql语句
    #翻译为 select * from user order by id desc limit 1,2
    items = db.session.execute('select * from user order by id desc ')
    #将结果集强转成list
    items = list(items)
    print(items)


    #使用原生语句进行修改操作
    # db.session.execute(" update user set password = '31313' where id = 6")

    #将动态数据传递给模板
    return render_template('day5.html',item = items)

  

原文地址:https://www.cnblogs.com/wjya/p/10175024.html