Flask-Sqlalchemy的基本使用详解
Flask-Sqlalchemy是一种用于构建Python Web应用程序的数据库包。它是基于SQLAlchemy 实现的,用于在Flask应用中与数据库进行交互,提供正式环境下的持久性。在本篇文章中我们将讲解Flask-Sqlalchemy的基本使用方法。
1. 安装Flask-Sqlalchemy
使用pip install flask_sqlalchemy安装Flask-SQLalchemy
2. 配置数据库连接
在Flask应用程序中,需要根据我们的需求配置数据库连接。
app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:password@localhost:3306/dbname' app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True db = SQLAlchemy(app)
这里的SQLALCHEMY_DATABASE_URI就是数据库连接的地址,需要根据我们的需要做出相应的配置。
3. 定义数据库模型
通常,我们使用类来定义数据库模型,这个类通常需要集成db.Model。SQLAlchemy通过它来自动生成数据库表结构和对数据表进行操作。
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
__tablename__ = 'users' # 表名
id = db.Column(db.Integer, primary_key=True) # id
username = db.Column(db.String(80), unique=True) # 用户名
email = db.Column(db.String(80), unique=True) # 邮箱
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
上述代码中,User继承的db.Model封装了所有的与模型相关的核心功能,如crush、create,update等。
4. 创建数据库表
当我们创建好了模型后,就可以利用db.create_all()生成对应的数据表。我们需要先让应用程序知道我们的程序中有哪些模型,然后在终端启动python shell(可以直接输入python,然后在运行)。
from app import db db.create_all()
执行完以后,我们就可以在指定的数据库中看到生成的数据表。
5. 添加和查询数据
向数据库中添加数据,我们可以使用db.session.add(),最终通过db.session.commit()函数将变更提交到数据库。
from app import db, User
admin = User('admin', 'admin@example.com')
guest = User('guest', 'guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
除了添加,我们需要获取数据库中的数据,我们可以使用查询的方法
User.query.all() User.query.filter_by(username='admin').first()
在上述代码中,我们可以通过User.query.all()查询出所有的记录,我们也可以通过User.query.filter_by(username='admin').first()获取到对应的username等于’admin'的 个实例记录。
6. 更新和删除数据
我们可以通过下面的代码做数据的更新和删除。
admin = User.query.filter_by(username='admin').first() admin.username = 'newadmin' db.session.add(admin) db.session.commit() db.session.delete(guest) db.session.commit()
在上述代码中,我们通过filter_by查询到username为admin的数据,然后通过.操作符跟新了username。我们也可以通过db.session.delete(guest)的方式删除一条记录。
以上就是Flask-Sqlalchemy的基本使用方法。在实际的开发过程中,我们还可以根据Flask-Sqlalchemy提供的其他功能对数据库操作进行增强。
