Sanic-WTF - Sanic meets WTForms
Project description
Sanic-WTF makes using WTForms with Sanic and CSRF (Cross-Site Request Forgery) protection a little bit easier.
Quick Start
Installation
pip install --upgrade Sanic-WTF
How to use it
Intialization (of Sanic)
from sanic import Sanic
app = Sanic(__name__)
# either WTF_CSRF_SECRET_KEY or SECRET_KEY should be set
app.config['WTF_CSRF_SECRET_KEY'] = 'top secret!'
@app.middleware('request')
async def add_session_to_request(request):
# setup session
Defining Forms
from sanic_wtf import SanicForm
from wtforms import PasswordField, StringField, SubmitField
from wtforms.validators import DataRequired
class LoginForm(SanicForm):
name = StringField('Name', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
submit = SubmitField('Sign In')
That’s it, just subclass SanicForm and later on passing in the current request object when you instantiate the form class. Sanic-WTF will do the trick.
Form Validation
from sanic import response
@app.route('/', methods=['GET', 'POST'])
async def index(request):
form = LoginForm(request)
if request.method == 'POST' and form.validate():
name = form.name.data
password = form.password.data
# check user password, log in user, etc.
return response.redirect('/profile')
# here, render_template is a function that render template with context
return response.html(await render_template('index.html', form=form))
For more details, please see documentation.
License
BSD New, see LICENSE for details.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Sanic-WTF-0.6.0.tar.gz
(11.7 kB
view hashes)
Built Distribution
Close
Hashes for Sanic_WTF-0.6.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 115f70b17de9f274c3f80ccd240ce615bc00f4d2c00566b68418aa2f09e0ea2d |
|
MD5 | a0a2e4b8118f0768b2fcf0805d96cc6d |
|
BLAKE2b-256 | 3bb0a4ce8e335da369bd188f4fa1600efc23d2d137c856b196ef4e1e3d7ceb31 |