{ "info": { "author": "Philip Xu and contributors", "author_email": "pyx@xrefactor.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "===============================\nSanic-WTF - Sanic meets WTForms\n===============================\n\nSanic-WTF makes using `WTForms` with `Sanic`_ and CSRF (Cross-Site Request\nForgery) protection a little bit easier.\n\n\n.. _WTForms: https://github.com/wtforms/wtforms\n.. _Sanic: https://github.com/channelcat/sanic\n\n\nQuick Start\n===========\n\n\nInstallation\n------------\n\n.. code-block:: sh\n\n pip install --upgrade Sanic-WTF\n\n\nHow to use it\n-------------\n\n\nIntialization (of Sanic)\n^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n from sanic import Sanic\n\n app = Sanic(__name__)\n\n # either WTF_CSRF_SECRET_KEY or SECRET_KEY should be set\n app.config['WTF_CSRF_SECRET_KEY'] = 'top secret!'\n\n @app.middleware('request')\n async def add_session_to_request(request):\n # setup session\n\n\nDefining Forms\n^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n from sanic_wtf import SanicForm\n from wtforms import PasswordField, StringField, SubmitField\n from wtforms.validators import DataRequired\n\n class LoginForm(SanicForm):\n name = StringField('Name', validators=[DataRequired()])\n password = PasswordField('Password', validators=[DataRequired()])\n submit = SubmitField('Sign In')\n\nThat's it, just subclass `SanicForm` and later on passing in the current\n`request` object when you instantiate the form class. Sanic-WTF will do the\ntrick.\n\n\nForm Validation\n^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n from sanic import response\n\n @app.route('/', methods=['GET', 'POST'])\n async def index(request):\n form = LoginForm(request)\n if request.method == 'POST' and form.validate():\n name = form.name.data\n password = form.password.data\n # check user password, log in user, etc.\n return response.redirect('/profile')\n # here, render_template is a function that render template with context\n return response.html(await render_template('index.html', form=form))\n\n\n.. note::\n For WTForms users: please note that `SanicForm` requires the whole `request`\n object instead of some sort of `MultiDict`.\n\n\nFor more details, please see documentation.\n\n\nLicense\n=======\n\nBSD New, see LICENSE for details.\n\n\nLinks\n=====\n\n- `Documentation `_\n\n- `Issue Tracker `_\n\n- `Source Package @ PyPI `_\n\n- `Mercurial Repository @ bitbucket\n `_\n\n- `Git Repository @ Github\n `_\n\n- `Git Repository @ Gitlab\n `_\n\n- `Development Version\n `_\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pyx/sanic-wtf/", "keywords": "", "license": "BSD-New", "maintainer": "", "maintainer_email": "", "name": "Sanic-WTF", "package_url": "https://pypi.org/project/Sanic-WTF/", "platform": "any", "project_url": "https://pypi.org/project/Sanic-WTF/", "project_urls": { "Homepage": "https://github.com/pyx/sanic-wtf/" }, "release_url": "https://pypi.org/project/Sanic-WTF/0.5.0/", "requires_dist": [ "sanic", "wtforms", "Sphinx; extra == 'dev'", "aiohttp; extra == 'dev'", "flake8; extra == 'dev'", "pytest; extra == 'dev'", "pytest-cov; extra == 'dev'", "tox; extra == 'dev'", "twine; extra == 'dev'" ], "requires_python": "", "summary": "Sanic-WTF - Sanic meets WTForms", "version": "0.5.0" }, "last_serial": 2863141, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d6b6960b685ad286f40db0f41596b1d2", "sha256": "6cf900b78ea5bc8b3e6b7cf3cfddb8aa5df1a7d79b17b98eb8cb7dc3c894f3c6" }, "downloads": -1, "filename": "Sanic_WTF-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d6b6960b685ad286f40db0f41596b1d2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5338, "upload_time": "2017-04-27T22:38:18", "url": "https://files.pythonhosted.org/packages/d6/f7/707e737e614dc2bce66a9e612cf218320c054d15e67e0a75a3b015311892/Sanic_WTF-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24734f41e7ea4bf71cbd034470968280", "sha256": "0f519b6664568d5772f05d3a0377304b6c253bcbd2c9023ad10275a69c3fc7f3" }, "downloads": -1, "filename": "Sanic-WTF-0.1.0.tar.gz", "has_sig": true, "md5_digest": "24734f41e7ea4bf71cbd034470968280", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8705, "upload_time": "2017-04-27T22:38:19", "url": "https://files.pythonhosted.org/packages/1d/d4/b0a7d2dbab03d7a945469b8d4567b8d3fedbb63d686420332b6e2e97eab0/Sanic-WTF-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1074a024a72b7f2cdf5b9419f5b9d2fe", "sha256": "704818f754a5ca1b57d8066114b062d29a1ad237e257cf344842a2630e0eb497" }, "downloads": -1, "filename": "Sanic_WTF-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1074a024a72b7f2cdf5b9419f5b9d2fe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5263, "upload_time": "2017-04-28T00:15:13", "url": "https://files.pythonhosted.org/packages/e0/b0/70c73c410b7820de519afbbd186f72c481133a14ec54d2abba1baad47e29/Sanic_WTF-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afff9ca3f9178da37604398299cf8a5b", "sha256": "eb0e054a8280bcac04619e39b2c52c19b72823107ab67caf315da38d838dade8" }, "downloads": -1, "filename": "Sanic-WTF-0.2.0.tar.gz", "has_sig": true, "md5_digest": "afff9ca3f9178da37604398299cf8a5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8605, "upload_time": "2017-04-28T00:15:15", "url": "https://files.pythonhosted.org/packages/30/1a/8a2a8aa0157b0e56d040328b89534fc2bfbe89a73571d8a1c72a7d86e37a/Sanic-WTF-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2d44d23e1912bdd1a95f9ac9a1c3d1cc", "sha256": "d5894cffc56dc697da6de155f298777b2b83dbb89877130bec710ce04693c430" }, "downloads": -1, "filename": "Sanic_WTF-0.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2d44d23e1912bdd1a95f9ac9a1c3d1cc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5976, "upload_time": "2017-05-03T01:10:10", "url": "https://files.pythonhosted.org/packages/db/1d/b50da1192433bb242d096ad2708901987056ac89f542a183fdcb1391f967/Sanic_WTF-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7fbc86fecdb17d413d89ebf1ce320ee", "sha256": "85e9fd8adf48d33ca448437db3ecf68dd00e8a8e664f2b39877ecb5abbf453bb" }, "downloads": -1, "filename": "Sanic-WTF-0.3.0.tar.gz", "has_sig": true, "md5_digest": "c7fbc86fecdb17d413d89ebf1ce320ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9916, "upload_time": "2017-05-03T01:10:12", "url": "https://files.pythonhosted.org/packages/09/22/93583e42abf40c98a56da794a9a95f89147b7d5ad3db90d58f955068b54c/Sanic-WTF-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "fb5d488d3dca0355a05f36c5cfcecca4", "sha256": "a9ddf428aa227f1cb66cedc3b067b787cfa0a6fb17a95b36f95062d77aa3bc7f" }, "downloads": -1, "filename": "Sanic_WTF-0.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "fb5d488d3dca0355a05f36c5cfcecca4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5743, "upload_time": "2017-05-05T03:16:03", "url": "https://files.pythonhosted.org/packages/0b/0f/4f96ccfd8bc7b553124f0d50cee275c29ce574b2b70d132fb0a2f25a37f1/Sanic_WTF-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5d8af8a810bcee41c43eec5912f43b1", "sha256": "c4ea21d9606cbfd939a15ae34669374682058d42c3dc79a0c46bc994bbace643" }, "downloads": -1, "filename": "Sanic-WTF-0.4.0.tar.gz", "has_sig": true, "md5_digest": "d5d8af8a810bcee41c43eec5912f43b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9585, "upload_time": "2017-05-05T03:16:05", "url": "https://files.pythonhosted.org/packages/9e/24/95b6ebe29073dfcc7589a14a42a99dd9fcdc67046889a576e68419ac25e4/Sanic-WTF-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "d51aed2e82ad705fa1e5703e6e46b7e2", "sha256": "fceb143d8cda18e814ee065b2f7428f845fdf429895b2a16df027d733de4562e" }, "downloads": -1, "filename": "Sanic_WTF-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d51aed2e82ad705fa1e5703e6e46b7e2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6461, "upload_time": "2017-05-10T00:36:58", "url": "https://files.pythonhosted.org/packages/67/35/f7277ad47ce85aa3af17e56ea8daba057c234f54b8fb4243f753624e008a/Sanic_WTF-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db12f7087b993ebbd8d59d66f6e75886", "sha256": "ec10880c8be492b8817dce6a1cb853c827939e76ffe5df54708b6cc6efd75c4d" }, "downloads": -1, "filename": "Sanic-WTF-0.5.0.tar.gz", "has_sig": true, "md5_digest": "db12f7087b993ebbd8d59d66f6e75886", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11922, "upload_time": "2017-05-10T00:37:00", "url": "https://files.pythonhosted.org/packages/70/af/98438151d56180f6a108e4c324604022e376e6775b6f90cd35658fdc6a50/Sanic-WTF-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d51aed2e82ad705fa1e5703e6e46b7e2", "sha256": "fceb143d8cda18e814ee065b2f7428f845fdf429895b2a16df027d733de4562e" }, "downloads": -1, "filename": "Sanic_WTF-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d51aed2e82ad705fa1e5703e6e46b7e2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6461, "upload_time": "2017-05-10T00:36:58", "url": "https://files.pythonhosted.org/packages/67/35/f7277ad47ce85aa3af17e56ea8daba057c234f54b8fb4243f753624e008a/Sanic_WTF-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db12f7087b993ebbd8d59d66f6e75886", "sha256": "ec10880c8be492b8817dce6a1cb853c827939e76ffe5df54708b6cc6efd75c4d" }, "downloads": -1, "filename": "Sanic-WTF-0.5.0.tar.gz", "has_sig": true, "md5_digest": "db12f7087b993ebbd8d59d66f6e75886", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11922, "upload_time": "2017-05-10T00:37:00", "url": "https://files.pythonhosted.org/packages/70/af/98438151d56180f6a108e4c324604022e376e6775b6f90cd35658fdc6a50/Sanic-WTF-0.5.0.tar.gz" } ] }