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

使用flask_admin.contrib.sqla进行数据库管理

发布时间:2023-12-27 13:24:50

Flask-Admin是一个为Flask应用程序提供简单而强大的数据库管理界面的扩展。它提供了一组用户友好的界面,使开发人员能够轻松地管理数据库模型和记录。在后台管理界面中,您可以执行创建、更新和删除数据,搜索和过滤数据,还可以轻松地执行其他常见的管理任务。

Flask-Admin提供了一个名为flask_admin.contrib.sqla的模块,该模块封装了与SQLAlchemy相关的功能。使用此模块,您可以快速创建后台管理界面,管理数据库中的模型。

下面是一个使用flask_admin.contrib.sqla进行数据库管理的例子:

首先,我们需要导入必要的模块和类:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

接下来,创建Flask应用程序和数据库实例:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)

然后,我们定义一个简单的数据库模型:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)

    def __repr__(self):
        return self.username

现在,我们创建一个自定义的ModelView类来显示我们的User模型:

class UserView(ModelView):
    column_searchable_list = ['username']
    column_filters = ['username']

    def on_model_change(self, form, model, is_created):
        if is_created:
            model.username = model.username.lower()

在上面的代码中,我们定义了一个可以搜索和过滤的字段,并使用on_model_change方法在保存模型之前将用户名转为小写。

接下来,我们创建一个管理界面并注册我们的模型:

admin = Admin(app, name='Admin', template_mode='bootstrap3')
admin.add_view(UserView(User, db.session))

以上代码创建了一个名为"Admin"的管理界面,并将我们的UserView注册到该界面。

最后,我们运行Flask应用程序:

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

现在,当您运行应用程序并访问/admin时,您将看到一个管理界面,您可以在该界面中创建、更新和删除用户记录,并搜索和过滤记录。

总结:

以上是使用flask_admin.contrib.sqla进行数据库管理的简单示例。使用Flask-Admin,您可以轻松地创建功能强大的后台管理界面,管理数据库中的模型和记录。记住,这只是其中一种使用方法,您可以根据自己的需求进行修改和定制。