Skip to content

Instantly share code, notes, and snippets.

@waynew
Created November 5, 2015 19:42
Show Gist options
  • Save waynew/58d9a5196403b7e8e551 to your computer and use it in GitHub Desktop.
Save waynew/58d9a5196403b7e8e551 to your computer and use it in GitHub Desktop.
How do you validate?
from eve import Eve
from eve_sqlalchemy import SQL
from sqlalchemy.ext.declarative import declarative_base
from eve_sqlalchemy.decorators import registerSchema
from eve_sqlalchemy.validation import ValidatorSQL
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import column_property, relationship
from sqlalchemy import func
from sqlalchemy import (
Column,
String,
Integer,
ForeignKey,
DateTime)
Base = declarative_base()
class People(Base):
__tablename__ = 'people'
id = Column(Integer, primary_key=True, autoincrement=True)
firstname = Column(String(80))
lastname = Column(String(120))
fullname = column_property(firstname + " " + lastname)
class Invoices(Base):
__tablename__ = 'invoices'
id = Column(Integer, primary_key=True, autoincrement=True)
number = Column(Integer)
people_id = Column(Integer, ForeignKey('people.id'))
people = relationship(People, uselist=False)
registerSchema('people')(People)
registerSchema('invoices')(Invoices)
settings = {'SQLALCHEMY_DATABASE_URI': 'sqlite:///data.sq3',
'DOMAIN': {'people': People._eve_schema['people'],
'invoices': Invoices._eve_schema['invoices'],
},
}
settings['DOMAIN']['people'].update({'resource_methods': ['GET', 'POST', 'DELETE']})
app = Eve(data=SQL, settings=settings, auth=None, validator=ValidatorSQL)
db = app.data.driver
Base.metadata.bind = db.engine
db.Model = Base
db.create_all()
app.logger.debug(People._eve_schema['people'])
db.session.add(People(firstname='Dude', lastname='Man'))
db.session.commit()
if __name__ == '__main__':
app.logger.info('Starting with server as __main__')
app.run(host='0.0.0.0', port=80, debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment