Snippets are unofficial and unmaintained.
This is an archived view of user-submitted snippets. Despite being hosted on the Flask site, they are not official. No Flask maintainer has curated or checked the snippets for security, correctness, or design.
Given this example Flatland schema,
from flatland import Form, String class SignInForm(Form): username = String password = String
The correct way to create an element instance from a Flask request is as follows:
if request.method in ['POST', 'PUT']: form = SignInForm.from_flat(request.form.items(multi=True))
A little wordy, so you might want to write a little helper function:
def form_from_request(schema): return schema.from_flat(request.form.items(multi=True))
Now you can simply do this in a view:
if request.method in ['POST', 'PUT']: form = form_from_request(SignInForm)
An alternative could be to subclass Form and add a validate_on_submit method similar to what Flask-WTF does, so that you can refactor out the request.method check.
This snippet by Dag Odenhall can be used freely for anything you like. Consider it public domain.