Flask开发(二十二)Flask访问数据库 数据的CRUD操作
内容纲要
本篇导读:
- 数据的添加
- 数据的查询
- 数据的修改
- 数据的删除
数据的添加
数据的增删改查等操作,必须确保数据库已经实现建立好,然后使用db.sesssion.add(对象名称),就可以实现数据的插入操作。
在工程中新建一个config.py文件,其内容如下:
USER_NAME = 'root' PASSWORD = '104210' HOST = '192.168.112.101' PORT = '3306' DATABASE = 'demo_02' DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format\ (USER_NAME,PASSWORD,HOST,PORT,DATABASE) SQLALCHEMY_DATABASE_URI=DB_URI SQLALCHEMY_TRACK_MODIFICATIONS=False
app.py文件内容如下:
from flask import Flask from flask_sqlalchemy import SQLAlchemy from datetime import datetime import config app = Flask(__name__) app.config.from_object(config) db=SQLAlchemy(app) class Book(db.Model): __tablename__='book' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(50),nullable=False) publishing_office = db.Column(db.String(100),nullable=False) price = db.Column(db.String(30),nullable=False) isbn = db.Column(db.String(50),nullable=False) storage = db.Column(db.DateTime,default=datetime.now()) with app.app_context(): db.create_all() @app.route('/add') def add(): book1 = Book(title='Python基础教程(第三版)', publishing_office='人民邮电出版社', price='54.50',isbn='9787115474889') book2 = Book(title='游戏编程快速上手 第4版', publishing_office='人民邮电出版社', price='68.30', isbn='9787302384496') book3 = Book(title='Java算法与数据结构', publishing_office='清华大学出版社', price='121.40', isbn='978730288269') db.session.add(book1) db.session.add(book2) db.session.add(book3) db.session.commit() return '添加数据成功!' @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
运行工程,访问add路径后,查询数据库:
查询数据
数据的查询必须使用query.filter()方法查找到相应的对象(记录),然后就可以输出该对象具有的属性。接下来实现查询语句:
@app.route('/select') def select(): result = Book.query.filter(Book.id == 1).first() print(result.title) result = Book.query.filter(Book.publishing_office == '人民邮电出版社').all() for book in result: print(book.title) return '查询数据成功!'
first()函数用来返回查询到结果中的第一条,all()函数用来返回所有查询结果。
运行效果如下:
数据修改
数据的查询必须使用query.filter()方法查找到相应的对象(记录),然后再对该对象的属性值进行修改。
@app.route('/edit') def edit(): book = Book.query.filter(Book.id == '1').first() book.price = '1688' db.session.commit() return '修改数据成功'
运行效果如下:
数据删除
数据的查询必须使用query.filter()方法查找到相应的对象(记录),然后使用db.session.delete(对象名)方法进行删除。
@app.route('/del') def delete(): book = Book.query.filter(Book.id == '2').first() db.session.delete(book) db.session.commit() return '删除数据成功!'
运行效果如下:
无数据,请在后台创建自定义歌单。
阅读剩余
版权声明:
作者:雪落长安
链接:https://blog.wlbc321.cn/index.php/2021/05/31/flask22/
文章版权归作者所有,未经允许请勿转载。
THE END