Skip to main content

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.fields 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.

Project details


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.7.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

sanic_wtf-0.7.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file sanic_wtf-0.7.0.tar.gz.

File metadata

  • Download URL: sanic_wtf-0.7.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.9.3 CPython/3.11.5

File hashes

Hashes for sanic_wtf-0.7.0.tar.gz
Algorithm Hash digest
SHA256 d87a1b8b8ff0f5cc4b1c97dc18ab28b9a1682bc803f5a6878aa3ad8c78e429d3
MD5 c4ae37b129a6a9a8a7e6b88e63f0e5f9
BLAKE2b-256 7cf174329ecd6fa80a0e6998e9828c0b3a816e92ada3c780028dacda64b99ccb

See more details on using hashes here.

File details

Details for the file sanic_wtf-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: sanic_wtf-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.9.3 CPython/3.11.5

File hashes

Hashes for sanic_wtf-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46e60c97019acb59e21292e21a06f74e09e6260e9bf10caf054f4e09f62cb324
MD5 3ec95d33bbafeb3add4f13dbda916b08
BLAKE2b-256 4f8e48ffe144b08f20305e867751778c56cbd5f12040ac56b02f33b0cd435b98

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page