在flask中添加flask_admin.contrib.sqla的依赖
在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 的依赖并使用的例子。通过这个拓展,可以快速创建和管理数据库表格的界面,提高开发效率。
