/ Admin Panels

Simple and extensible administrative interface framework for Flask

Simple and extensible administrative interface framework for Flask

Flask-Admin

The project was recently moved into its own organization. Please update your references to [email protected]:flask-admin/flask-admin.git.

Introduction

Flask-Admin is a batteries-included, simple-to-use Flask extension that lets you add admin interfaces to Flask applications. It is inspired by the django-admin package, but implemented in such a way that the developer has total control of the look, feel and functionality of the resulting application.

Out-of-the-box, Flask-Admin plays nicely with various ORM's, including

  • SQLAlchemy,
  • MongoEngine,
  • pymongo and
  • Peewee.

It also boasts a simple file management interface and a redis client console.

The biggest feature of Flask-Admin is flexibility. It aims to provide a set of simple tools that can be used for building admin interfaces of any complexity. So, to start off with you can create a very simple application in no time, with auto-generated CRUD-views for each of your models. But then you can go further and customize those views & forms as the need arises.

Flask-Admin is an active project, well-tested and production ready.

Installation

To install Flask-Admin, simply::

pip install flask-admin

Or alternatively, you can download the repository and install manually by doing::

git clone [email protected]:flask-admin/flask-admin.git
cd flask-admin
python setup.py install

Tests

Test are run with nose. If you are not familiar with this package you can get some more info from their website <https://nose.readthedocs.io/>_.

To run the tests, from the project directory, simply::

pip install -r requirements-dev.txt
nosetests

You should see output similar to::

.............................................
----------------------------------------------------------------------
Ran 102 tests in 13.132s

OK

For all the tests to pass successfully, you'll need Postgres & MongoDB to be running locally. For Postgres::

CREATE DATABASE flask_admin_test;
CREATE EXTENSION postgis;
CREATE EXTENSION hstore;

You can also run the tests on multiple environments using tox.

GitHub