{ "info": { "author": "Alex Parakhnevich", "author_email": "alex.parakhnevich@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "======\r\ntorgen\r\n======\r\n\r\nDjango's CBVs adapted to be used with Tornado along with SQLAlchemy and WTForms.\r\nIt's highly recomended to read the docs here first: https://github.com/BeardyBear/tornado-generic-handlers\r\n\r\nChangelog\r\n=========\r\n\r\n::\r\n\r\n 0.2: new handler - DeleteHandler\r\n 0.2.5: fixed missing context in ProcessFormHandler\r\n\r\nConfiguration\r\n=============\r\n\r\nThe only requirement is SQLAlchemy's session stored in application's db attribute.\r\n\r\n::\r\n\r\n from sqlalchemy.orm import scoped_session, sessionmaker\r\n\r\n class Application(tornado.web.Application):\r\n def __init__(self):\r\n self.db = scoped_session(sessionmaker(bind=engine))\r\n\r\nBasic usage\r\n===========\r\n\r\n::\r\n\r\n from torgen.base import TemplateHandler\r\n from torgen.list import ListHandler\r\n from torgen.detail import DetailHandler\r\n from torgen.edit import FormHandler, DeleteHandler\r\n from my_alchemy_models import Post\r\n from my_wtforms import LoginForm\r\n\r\n class HomeHandler(TemplateHandler):\r\n template_name = 'home.html'\r\n \r\n class BlogHandler(ListHandler):\r\n template_name = 'blog.html'\r\n paginate_by = 10\r\n context_object_name = 'post_list'\r\n model = Post\r\n \r\n class PostHandler(DetailHandler):\r\n template_name = 'post.html'\r\n model = Post\r\n context_object_name = 'post'\r\n \r\n class LoginHandler(FormHandler):\r\n template_name = 'login.html'\r\n form_class = LoginForm\r\n success_url = '/'\r\n \r\n def form_valid(self, form):\r\n self.set_secure_cookie('user', form.data['username'])\r\n return super(LoginHandler, self).form_valid(form)\r\n\r\n class DeletePostHandler(DeleteHandler):\r\n template_name = 'confirm_delete.html'\r\n model = Post\r\n success_url = '/blog/'\r\n\r\nPagination\r\n==========\r\n\r\nPagination can be used separately from generic handlers.\r\n\r\n::\r\n\r\n from torgen.pagination import Paginator, EmptyPage, PageNotAnInteger\r\n\r\n class BlogHandler(tornado.web.RequestHandler):\r\n @property\r\n def db(self):\r\n return self.application.db\r\n\r\n def get(self, page):\r\n post_list = self.db.query(Post).all()\r\n paginator = Paginator(posts, 15)\r\n try:\r\n posts = paginator.page(page)\r\n except PageNotAnInteger:\r\n posts = paginator.page(1)\r\n except EmptyPage:\r\n posts = paginator.page(paginator.num_pages)\r\n self.render('blog.html', posts=posts)\r\n\r\nYou can find advanced docs here: https://github.com/BeardyBear/tornado-generic-handlers\r\n\r\nInstallation\r\n============\r\n\r\nUsing pip:\r\n\r\n::\r\n\r\n $ pip install torgen", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/BeardyBear/tornado-generic-handlers/tarball/0.2.5", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/BeardyBear/tornado-generic-handlers", "keywords": "tornado,django,generic", "license": "UNKNOWN", "maintainer": "", "maintainer_email": "", "name": "torgen", "package_url": "https://pypi.org/project/torgen/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/torgen/", "project_urls": { "Download": "https://github.com/BeardyBear/tornado-generic-handlers/tarball/0.2.5", "Homepage": "https://github.com/BeardyBear/tornado-generic-handlers" }, "release_url": "https://pypi.org/project/torgen/0.2.5/", "requires_dist": null, "requires_python": null, "summary": "This package contains Django's CBVs adapted to use with Tornado framework.", "version": "0.2.5" }, "last_serial": 994320, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "365bdee7dd4bd2f8d8787a2e330e1853", "sha256": "af208ed5477a78f7f0fade1dff6fac66649e64fcba31c26c2349e15da8d1e08b" }, "downloads": -1, "filename": "torgen-0.1.tar.gz", "has_sig": false, "md5_digest": "365bdee7dd4bd2f8d8787a2e330e1853", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5883, "upload_time": "2014-02-06T20:43:50", "url": "https://files.pythonhosted.org/packages/6d/0c/07dcd7aacbc4bb06c2e00e4813ca954179fb97924cb797eb0144dd2e42ec/torgen-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "072720198c8b33270b6620f610ad5cb1", "sha256": "51abc4da409d6a1cab524633bb6452d5430800034ce44bb093774d7f6412a141" }, "downloads": -1, "filename": "torgen-0.2.tar.gz", "has_sig": false, "md5_digest": "072720198c8b33270b6620f610ad5cb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5905, "upload_time": "2014-02-07T11:55:30", "url": "https://files.pythonhosted.org/packages/02/24/0d2facc9c7de086dea59f08f62e2f367e4f88030f750d4ef0cfd78c430be/torgen-0.2.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "cd06dc315b0920b223b4b4e2cf714ab5", "sha256": "68e7272e164605521f9abbcf59b494383709e719a8af566570f3011fc961299c" }, "downloads": -1, "filename": "torgen-0.2.5.tar.gz", "has_sig": false, "md5_digest": "cd06dc315b0920b223b4b4e2cf714ab5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5920, "upload_time": "2014-02-07T13:40:49", "url": "https://files.pythonhosted.org/packages/cd/d0/e68603ec5c8837a122995e2109e1f2d3dae2db546ed1b7a64188f77aa309/torgen-0.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd06dc315b0920b223b4b4e2cf714ab5", "sha256": "68e7272e164605521f9abbcf59b494383709e719a8af566570f3011fc961299c" }, "downloads": -1, "filename": "torgen-0.2.5.tar.gz", "has_sig": false, "md5_digest": "cd06dc315b0920b223b4b4e2cf714ab5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5920, "upload_time": "2014-02-07T13:40:49", "url": "https://files.pythonhosted.org/packages/cd/d0/e68603ec5c8837a122995e2109e1f2d3dae2db546ed1b7a64188f77aa309/torgen-0.2.5.tar.gz" } ] }