Exposing models through the Admin
Flask-Admin comes with a contrib
package that contains special view classes designed to work with SQLAlchemy models. These classes provide out-of-the-box create, read, update, and delete functionalities.
Open admin.py
and update the following code:
from flask.ext.admin import Admin from flask.ext.admin.contrib.sqla import ModelView from app import app, db from models import Entry, Tag, User admin = Admin(app, 'Blog Admin') admin.add_view(ModelView(Entry, db.session)) admin.add_view(ModelView(Tag, db.session)) admin.add_view(ModelView(User, db.session))
Note how we call admin.add_view()
and pass instances of the ModelView
class, as well as the db
session, for it to access the database with. Flask-Admin works by providing a central endpoint to which we, the developers, can then add our own views.
Start the development server and try pulling up your admin site again. It should look something like the following screenshot:
Try clicking into one of our model's views...