Skip to content

Instantly share code, notes, and snippets.

@stephanie-gredell
Created March 20, 2015 08:50
Show Gist options
  • Save stephanie-gredell/4f11a03ffa5596697372 to your computer and use it in GitHub Desktop.
Save stephanie-gredell/4f11a03ffa5596697372 to your computer and use it in GitHub Desktop.
Flask Restless Sample
# create app
app = flask.Flask(__name__) app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'databaseurlgoeshere'
db = flask.ext.sqlalchemy.SQLAlchemy(app)
# models
class User(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(24), unique=True)
password = db.Column(db.String(24))
type = db.Column(db.String(20))
active = db.Column(db.Boolean)
class Event(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
event_name = db.Column(db.String(100))
event_type = db.Column(db.String(10), unique=True)
active = db.Column(db.Boolean)
class Asset(db.Model):
id = db.Column(db.Integer, primary_key=True)
asset_title = db.Column(db.String(250))
description = db.Column(db.Text)
type = db.Column(db.String(20), unique=True)
created_by = db.Column(db.Integer, db.ForeignKey('user.id'))
active = db.Column(db.Boolean)
class CompleteEvent(db.Model):
id = db.Column(db.Integer, primary_key=True)
event_id = db.Column(db.Integer, db.ForeignKey('event.id'))
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
event_data = db.Column(db.Text)
active = db.Column(db.Boolean)
class List(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.Text)
assets = db.relationship('ListAsset', backref='List', lazy='dynamic')
active = db.Column(db.Boolean)
class ListAsset(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
list_id = db.Column(db.Integer, db.ForeignKey('list.id'))
active = db.Column(db.Boolean)
# create db tables
db.create_all()
# create manager
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db)
# create endpoints
manager.create_api(User, methods=['GET'])
manager.create_api(Event, methods=['GET'])
manager.create_api(Asset, methods=['GET'])
manager.create_api(CompleteEvent, methods=['GET'])
manager.create_api(List, methods=['GET'])
# start flask
app.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment