Skip to content

jeanphix/Flask-Dashed

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Introduction

https://secure.travis-ci.org/jeanphix/Flask-Dashed.png

Flask-Dashed provides tools for build simple and extensible admin interfaces.

Online demonstration: http://flask-dashed.jeanphi.fr/ (Github account required).

List view:

https://github.com/jeanphix/Flask-Dashed/raw/dev/docs/_static/screen.png

Form view:

https://github.com/jeanphix/Flask-Dashed/raw/dev/docs/_static/screen-edit.png

Installation

pip install Flask-Dashed

Minimal usage

Code:

from flask import Flask
from flask_dashed.admin import Admin

app = Flask(__name__)
admin = Admin(app)

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

Sample application: http://github.com/jeanphix/flask-dashed-demo

Deal with security

Securing all module endpoints:

from flask import session

book_module = admin.register_module(BookModule, '/books', 'books',
    'book management')

@book_module.secure(http_code=401)
def login_required():
    return "user" in session

Securing specific module endpoint:

@book_module.secure_endpoint('edit', http_code=403)
def check_edit_credential(view):
    # I'm now signed in, may I modify the ressource?
    return session.user.can_edit_book(view.object)

Organize modules

As admin nodes are registered into a "tree" it's quite easy to organize them.:

library = admin.register_node('/library', 'library', my library)
book_module = admin.register_module(BookModule, '/books', 'books',
    'book management', parent=library)

Navigation and breadcrumbs are automatically builds to feet your needs. Child module security will be inherited from parent one.

SQLALchemy extension

Code:

from flask_dashed.ext.sqlalchemy import ModelAdminModule


class BookModule(ModelAdminModule):
    model = Book
    db_session = db.session

book_module = admin.register_module(BookModule, '/books', 'books',
    'book management')