Created
November 5, 2015 19:42
-
-
Save waynew/58d9a5196403b7e8e551 to your computer and use it in GitHub Desktop.
How do you validate?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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