{
"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"
}
]
}