Skip to content

funcodeio/tornado-sqlalchemy

Repository files navigation

tornado-sqlalchemy

https://travis-ci.org/siddhantgoel/tornado-sqlalchemy.svg?branch=stablehttps://readthedocs.org/projects/tornado-sqlalchemy/badge/?version=latest

Python helpers for using SQLAlchemy with Tornado.

Installation

$ pip install tornado-sqlalchemy

In case you prefer installing from the Github repository, please note that master is the development branch so stable is what you should be installing from.

Usage

fromtornado.genimportcoroutinefromtornado.webimportApplication, RequestHandlerfromtornado_sqlalchemyimportas_future, SessionMixin, SQLAlchemyclassNativeCoroutinesRequestHandler(SessionMixin, RequestHandler): asyncdefget(self): withself.make_session() assession: count=awaitas_future(session.query(User).count) self.write('{} users so far!'.format(count)) classGenCoroutinesRequestHandler(SessionMixin, RequestHandler): @coroutinedefget(self): withself.make_session() assession: count=yieldas_future(session.query(User).count) self.write('{} users so far!'.format(count)) classSynchronousRequestHandler(SessionMixin, RequestHandler): defget(self): withself.make_session() assession: count=session.query(User).count() self.write('{} users so far!'.format(count)) handlers= ( (r'/native-coroutines', NativeCoroutinesRequestHandler), (r'/gen-coroutines', GenCoroutinesRequestHandler), (r'/sync', SynchronousRequestHandler), ) app=Application( handlers, db=SQLAlchemy('postgres://user:password@host/database') )

Documentation

Documentation is available at Read The Docs.

Development

Please make sure you have Python 3.5+ and Poetry installed.

Since we run tests against multiple databases (currently MySQL, PostgreSQL, and SQLite), we use docker-compose to make our lives easier.

  1. Git clone the repository - git clone https://github.com/siddhantgoel/tornado-sqlalchemy
  2. Install the packages required for development - poetry install
  3. Ensure that the MySQL and PostgreSQL services (containers) are up - docker-compose up -d
  4. That should basically be it. You should now be able to run the test suite - poetry run py.test tests/.

About

SQLAlchemy support for Tornado

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python98.4%
  • Makefile1.6%