Skip to content

Instantly share code, notes, and snippets.

@pawl
Created December 23, 2015 10:58
Show Gist options
  • Save pawl/7d6064aebac5ed9eb2b8 to your computer and use it in GitHub Desktop.
Save pawl/7d6064aebac5ed9eb2b8 to your computer and use it in GitHub Desktop.
incomplete appengine example
import flask_admin as admin
from flask import Flask
from flask_admin.contrib import appengine
from google.appengine.ext import ndb
# Create application
app = Flask(__name__)
# Create dummy secrey key so we can use sessions
app.config['SECRET_KEY'] = '123456790'
# Create in-memory database
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sample_db_2.sqlite'
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)
# Flask views
@app.route('/')
def index():
return '<a href="/admin/">Click me to get to Admin!</a>'
class Car(ndb.Model):
__tablename__ = 'cars'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
desc = ndb.StringProperty()
def __unicode__(self):
return self.desc
class Tyre(ndb.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 = ndb.StringProperty()
class CarAdmin(appengine.ModelView):
column_display_pk = True
can_view_details = True
form_columns = ['id', 'desc']
class TyreAdmin(appengine.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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment