欢迎访问宙启技术站
智能推送

Flask-Sqlalchemy的基本使用详解

发布时间:2023-05-15 10:17:34

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提供的其他功能对数据库操作进行增强。