/aiohttp_admin

admin interface for aiohttp application http://aiohttp-admin.readthedocs.io

Primary LanguagePythonApache License 2.0Apache-2.0

aiohttp_admin

https://travis-ci.org/aio-libs/aiohttp_admin.svg?branch=master

aiohttp_admin will help you on building an admin interface on top of an existing data model. Library designed to be database agnostic and decoupled of any ORM or datbase layer. Admin module relies on async/await syntax (PEP492) thus not compatible with Python older then 3.5.

https://raw.githubusercontent.com/aio-libs/aiohttp_admin/master/docs/demo.gif

Design

aiohttp_admin using following design philosophy:

  • backend and frontend of admin views are decoupled by REST API as result it is possible to change admin views without changing any python code. On browser side user interacts with single page application (ng-admin).
  • admin views are database agnostic, if it is possible to implement REST API it should be strait forward to add admin views. Some filtering features may be disabled if database do not support some kind of filtering.

Run Tests

Fist of all just clone repository:

$ git clone git@github.com:aio-libs/aiohttp_admin.git

Install docker using instruction from the official site, for OSX we use docker-machine.

Create virtualenv with python3.5 (older version are not supported). For example using virtualenvwrapper commands could look like:

$ cd aiohttp_admin
$ mkvirtualenv --python=`which python3.5` aiohttp_admin

After that please install libraries required for development:

$ pip install -r requirements-dev.txt

Congratulations, you are ready to run the test suite:

$ py.test --dp -s -v ./tests

Under the hood python docker client pulls images for PostgreSQL, MySQL and Mongodb. Fixtures start databases and insert testing data. You do not have to install any database at all.

Next time --dp (docker pull) flag could be dropped since all required images are cached on local machine. To make sure you have required images please execute:

$ docker images

Among results you should find something like:

postgres  9.5  247a11721cbd  2 weeks ago  265.9 MB
mysql     5.7  63a92d0c131d  8 weeks ago  374.1 MB
mongo     2.6  150dd5b5bd1b  9 weeks ago  390.9 MB

For OSX users one extra step is required, before running tests, please init environment variables:

$ eval $(docker-machine env default)
$ export DOCKER_MACHINE_IP=$(docker-machine ip)

Supported backends

Mailing List

https://groups.google.com/forum/#!forum/aio-libs

Requirements