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

在flask中添加flask_admin.contrib.sqla的依赖

发布时间:2023-12-27 13:32:37

在Flask中使用 flask_admin.contrib.sqla 拓展,可以方便地创建和管理数据库表格的界面。首先需要在 Flask 项目的 requirements.txt 文件中添加依赖,以确保拓展能够被正确地安装:

Flask==1.1.2
Flask-Admin==1.5.7
Flask-SQLAlchemy==2.4.4

执行 pip install -r requirements.txt 来安装相关依赖。

接下来,需要在 Flask 项目的主文件中导入相关的模块和类:

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

在创建 Flask 应用程序实例之后,需要初始化 Flask-SQLAlchemy:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'  # 指定 SQLite 数据库的 URI
db = SQLAlchemy(app)

创建模型类和数据库表格,例如一个名为 User 的表格:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))

    def __repr__(self):
        return self.name

接下来,需要创建一个 ModelView 类的子类来显示和编辑数据库表格的内容:

class UserView(ModelView):
    column_list = ('id', 'name')
    column_searchable_list = ('name',)  # 允许搜索栏根据 name 字段搜索用户
    form_columns = ('name',)  # 只显示和编辑 name 字段

在使用 ModelView 类时,可以根据需要自定义以下属性:

- column_list:指定显示在表格中的列;

- column_searchable_list:指定可以通过搜索栏进行搜索的列;

- form_columns:指定显示在编辑表单中的字段。

然后,需要创建一个 Flask-Admin 的实例,并将 User 模型和 UserView 类注册到 Flask-Admin 实例中:

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

最后,运行 Flask 应用程序:

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

现在,可以通过访问 URL /admin 来打开 Flask-Admin 的后台管理界面,可以看到添加了 User 模型的表格以及相关的操作按钮。

除了显示和编辑数据库表格的内容,Flask-Admin 还提供了其他功能,如过滤器、导出到 CSV/Excel、操作按钮等。在 UserView 类中可以定义更多的属性和方法来自定义页面的展示和操作。

总结起来,以上就是在 Flask 中添加 flask_admin.contrib.sqla 的依赖并使用的例子。通过这个拓展,可以快速创建和管理数据库表格的界面,提高开发效率。