class UserAdmin(CustomView): column_searchable_list = ("name",) column_filters = ("name", "email") # Flask views @app.route("/") def index(): return '<a href="/admin/">Click me to get to Admin!</a>' # Create admin with custom base template admin = admin.Admin(app, "Example: Layout", base_template="layout.jinja2") # Add views admin.add_view(UserAdmin(User, db.session)) admin.add_view(CustomView(Page, db.session)) def build_sample_db(): """ Populate a small db with some example entries. """ db.drop_all() db.create_all() first_names = [ "Harry", "Amelia", "Oliver",
class AnotherAdminView(admin.BaseView): @admin.expose('/') def index(self): return self.render('anotheradmin.jinja2') @admin.expose('/test/') def test(self): return self.render('test.jinja2') # Create flask app app = Flask(__name__, template_folder='templates') app.debug = True # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' # Create admin interface admin = admin.Admin(name="Example: Simple Views", template_mode='bootstrap3') admin.add_view(MyAdminView(name="view1", category='Test')) admin.add_view(AnotherAdminView(name="view2", category='Test')) admin.init_app(app) if __name__ == '__main__': # Start app app.run()
class Tyre(db.Model): __tablename__ = "tyres" car_id = db.Column(db.Integer, db.ForeignKey("cars.id"), primary_key=True) tyre_id = db.Column(db.Integer, primary_key=True) car = db.relationship("Car", backref="tyres") desc = db.Column(db.String(50)) class CarAdmin(sqla.ModelView): column_display_pk = True form_columns = ["id", "desc"] class TyreAdmin(sqla.ModelView): column_display_pk = True form_columns = ["car", "tyre_id", "desc"] # Create admin admin = admin.Admin(app, name="Example: SQLAlchemy2", template_mode="bootstrap3") admin.add_view(CarAdmin(Car, db.session)) admin.add_view(TyreAdmin(Tyre, db.session)) if __name__ == "__main__": # Create DB db.create_all() # Start app app.run(debug=True)
class MultiLineString(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) point = db.Column(Geometry("MULTILINESTRING")) # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' # Create admin admin = admin.Admin(app, name='Example: GeoAlchemy', template_mode='bootstrap3') # Add views admin.add_view(ModelView(Point, db.session, category='Points')) admin.add_view(ModelView(MultiPoint, db.session, category='Points')) admin.add_view(ModelView(Polygon, db.session, category='Polygons')) admin.add_view(ModelView(MultiPolygon, db.session, category='Polygons')) admin.add_view(ModelView(LineString, db.session, category='Lines')) admin.add_view(ModelView(MultiLineString, db.session, category='Lines')) if __name__ == '__main__': db.create_all() # Start app app.run(debug=True)
from pyramid_admin.contrib import fileadmin # Create flask app app = Flask(__name__, template_folder='templates', static_folder='files') # Create dummy secrey key so we can use flash app.config['SECRET_KEY'] = '123456790' # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' if __name__ == '__main__': # Create directory path = op.join(op.dirname(__file__), 'files') try: os.mkdir(path) except OSError: pass # Create admin interface admin = admin.Admin(app, 'Example: Files') admin.add_view(fileadmin.FileAdmin(path, '/files/', name='Files')) # Start app app.run(debug=True)
def index(): tmp = u""" <p><a href="/admin/?lang=en">Click me to get to Admin! (English)</a></p> <p><a href="/admin/?lang=cs">Click me to get to Admin! (Czech)</a></p> <p><a href="/admin/?lang=de">Click me to get to Admin! (German)</a></p> <p><a href="/admin/?lang=es">Click me to get to Admin! (Spanish)</a></p> <p><a href="/admin/?lang=fa">Click me to get to Admin! (Farsi)</a></p> <p><a href="/admin/?lang=fr">Click me to get to Admin! (French)</a></p> <p><a href="/admin/?lang=pt">Click me to get to Admin! (Portuguese)</a></p> <p><a href="/admin/?lang=ru">Click me to get to Admin! (Russian)</a></p> <p><a href="/admin/?lang=zh_CN">Click me to get to Admin! (Chinese - Simplified)</a></p> <p><a href="/admin/?lang=zh_TW">Click me to get to Admin! (Chinese - Traditional)</a></p> """ return tmp if __name__ == '__main__': # Create admin admin = admin.Admin(app, 'Example: Babel') #admin.locale_selector(get_locale) # Add views admin.add_view(sqla.ModelView(User, db.session)) admin.add_view(sqla.ModelView(Post, db.session)) # Create DB db.create_all() # Start app app.run(debug=True)
# Flask views @app.route("/") def index(): return render_template("index.jinja2") # Initialize flask-login init_login() # Create admin admin = admin.Admin(app, "Example: Auth", index_view=MyAdminIndexView(), base_template="my_master.jinja2") # Add view admin.add_view(MyModelView(User, db.session)) def build_sample_db(): """ Populate a small db with some example entries. """ import string import random db.drop_all() db.create_all() # passwords are hashed, to use plaintext passwords instead: # test_user = User(login="******", password="******") test_user = User(login="******", password=generate_password_hash("test"))
def post(self, cls): return cls.render('test.jinja2', request=request, name="API_v1") @admin.expose_plugview('/_api/2') class API_v2(MethodView): def get(self, cls): return cls.render('test.jinja2', request=request, name="API_v2") def post(self, cls): return cls.render('test.jinja2', request=request, name="API_v2") # Create flask app app = Flask(__name__, template_folder='templates') # Flask views @app.route('/') def index(): return redirect('/admin') if __name__ == '__main__': # Create admin interface admin = admin.Admin(name="Example: MethodView") admin.add_view(ViewWithMethodViews()) admin.init_app(app) # Start app app.run(debug=True)
def __init__(self): super(LocationAdmin, self).__init__(Location, db.session, name='Locations') # Simple page to show images @app.route('/') def index(): locations = db.session.query(Location).all() return render_template('locations.jinja2', locations=locations) if __name__ == '__main__': # Create upload directory try: os.mkdir(base_path) except OSError: pass # Create admin admin = admin.Admin(app, name='Example: Inline Models') # Add views admin.add_view(LocationAdmin()) # Create DB db.create_all() # Start app app.run(debug=True)
form_ajax_refs = {"user": {"fields": (User.username, User.email)}, "tags": {"fields": (Tag.name,)}} def __init__(self, session): # Just call parent class with predefined model. super(PostAdmin, self).__init__(Post, session) class TreeView(sqla.ModelView): form_excluded_columns = ["children"] # Create admin admin = admin.Admin(app, name="Example: SQLAlchemy", template_mode="bootstrap3") # Add views admin.add_view(UserAdmin(User, db.session)) admin.add_view(sqla.ModelView(Tag, db.session)) admin.add_view(PostAdmin(db.session)) admin.add_view(TreeView(Tree, db.session)) def build_sample_db(): """ Populate a small db with some example entries. """ import random import datetime db.drop_all() db.create_all()
return self._feed_user_choices(form) def edit_form(self, obj): form = super(TweetView, self).edit_form(obj) return self._feed_user_choices(form) # Correct user_id reference before saving def on_model_change(self, form, model): user_id = model.get('user_id') model['user_id'] = ObjectId(user_id) return model # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' if __name__ == '__main__': # Create admin admin = admin.Admin(app, name='Example: PyMongo') # Add views admin.add_view(UserView(db.user, 'User')) admin.add_view(TweetView(db.tweet, 'Tweets')) # Start app app.run(debug=True)
form = RegistrationForm(request.POST) if request.method == 'POST' and form.validate(): user = User() form.populate_obj(user) user.save() login.login_user(user) return redirect(url_for('index')) return render_template('form.jinja2', form=form) @app.route('/logout/') def logout_view(): login.logout_user() return redirect(url_for('index')) if __name__ == '__main__': # Initialize flask-login init_login() # Create admin admin = admin.Admin(app, 'Example: Auth-Mongo', index_view=MyAdminIndexView()) # Add view admin.add_view(MyModelView(User)) # Start app app.run(debug=True)
def __unicode__(self): return self.name # Customized admin interface class PageAdmin(sqla.ModelView): form_overrides = dict(text=CKTextAreaField) create_template = 'create.jinja2' edit_template = 'edit.jinja2' # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' if __name__ == '__main__': # Create admin admin = admin.Admin(app, name="Example: WYSIWYG") # Add views admin.add_view(PageAdmin(Page, db.session)) # Create DB db.create_all() # Start app app.run(debug=True)
'form_widget_args': { 'name': { 'style': 'color: red' } } } } } } # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' if __name__ == '__main__': # Create admin admin = admin.Admin(app, 'Example: MongoEngine') # Add views admin.add_view(UserView(User)) admin.add_view(TodoView(Todo)) admin.add_view(ModelView(Tag)) admin.add_view(PostView(Post)) admin.add_view(ModelView(File)) admin.add_view(ModelView(Image)) # Start app app.run(debug=True)
from flask import Flask from redis import Redis import pyramid_admin as admin from pyramid_admin.contrib import rediscli # Create flask app app = Flask(__name__) # Flask views @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' if __name__ == '__main__': # Create admin interface admin = admin.Admin(app, name="Example: Redis") admin.add_view(rediscli.RedisCli(Redis())) # Start app app.run(debug=True)
form_ajax_refs = { 'user': { 'fields': (User.username, 'email') } } @app.route('/') def index(): return '<a href="/admin/">Click me to get to Admin!</a>' if __name__ == '__main__': import logging logging.basicConfig() logging.getLogger().setLevel(logging.DEBUG) admin = admin.Admin(app, name='Example: Peewee') admin.add_view(UserAdmin(User)) admin.add_view(PostAdmin(Post)) try: User.create_table() UserInfo.create_table() Post.create_table() except: pass app.run(debug=True)