A Tornado App Example Using PyEntyΒΆ
Here’s a simple example of how to create a tornado application with pyenty
from tornado.gen import coroutine
import tornado.httpserver
import tornado.ioloop
import tornado.web
from pyenty import EntityConnection, EntityManager
from pyenty.types import Entity, Str, List
class Profile(Entity):
name = Str()
def __init__(self, name):
self.name = name
class User(Entity):
name = Str()
last_name = Str()
profile = List(Profile)
def __init__(self, name='', last_name=''):
self.name = name
self.last_name = last_name
def add_profile(self, profile):
self.profile.append(profile)
class UserHandler(tornado.web.RequestHandler):
emanager = None
@coroutine
def post(self):
self.emanager = EntityManager(entity=User)
name = self.get_argument('name')
last_name = self.get_argument('last_name')
# add user
user = User(name, last_name)
user.add_profile(Profile('guest'))
object_id = yield self.emanager.save(user)
@coroutine
def get(self):
emanager = EntityManager(User)
user = yield emanager.find()
EntityConnection.open(db="ym_db_test")
if __name__ == "__main__":
app = tornado.web.Application(
[(r'/user', UserHandler), ],
autoreload=True
)
app.listen(8889)
tornado.ioloop.IOLoop.instance().start()