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

使用flask_admin.contrib.sqla生成表单和视图

发布时间:2023-12-27 13:29:04

Flask-Admin是一个用于Flask框架的开源库,它提供了一个快速创建管理员界面的方法。其中的flask_admin.contrib.sqla模块可以帮助我们生成表单和视图。

在使用Flask-Admin之前,首先需要确保已经安装了Flask和SQLAlchemy。可以通过以下命令安装这两个库:

pip install flask
pip install 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:///example.db'
db = SQLAlchemy(app)

然后,我们需要定义一个模型类,并继承自db.Model

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

    def __repr__(self):
        return self.name

接下来,我们需要创建一个视图类,并继承自ModelView,并指定要管理的模型类:

class UserAdmin(ModelView):
    column_list = ('name', 'email')
    form_columns = ('name', 'email')

在视图类中,我们可以通过column_list属性指定要在列表视图中显示的列,通过form_columns属性指定要在表单中显示的列。

接下来,我们需要创建一个管理器,并将应用程序和数据库实例传递给它:

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

在创建管理器时,我们可以指定管理页面的名称和模板模式。然后,我们可以通过调用add_view方法将视图类添加到管理器中。

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

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

启动应用程序后,可以通过访问http://localhost:5000/admin来查看管理员界面。

在管理员界面中,我们可以看到一个名为"User"的表格,其中包含了"Name"和"Email"两列。我们可以点击"Create"按钮来创建新的用户,并在表单中输入相关信息。

通过以上步骤,我们成功地使用了flask_admin.contrib.sqla模块来生成表单和视图。可以根据需要对模型类和视图类进行进一步的自定义,以满足具体的需求。