WTForms-JSON

0.3.5 · abandoned · verified Tue Apr 14

WTForms-JSON extends WTForms to provide convenient serialization and deserialization of form data to and from JSON, particularly useful for RESTful APIs. It allows forms to be populated directly from JSON payloads and validates them as usual. The latest version is 0.3.5, released in 2017. The project appears to be unmaintained.

Warnings

Install

Imports

Quickstart

Demonstrates initializing wtforms-json and populating a form with JSON data, followed by validation. It shows handling both valid and invalid JSON inputs.

from wtforms import Form, StringField, IntegerField
from wtforms.validators import DataRequired, NumberRange
from wtforms_json import init_app

# Initialize wtforms-json to extend WTForms functionality
init_app()

class UserProfileForm(Form):
    name = StringField('Name', validators=[DataRequired()])
    age = IntegerField('Age', validators=[NumberRange(min=0, max=120)])

# Example JSON data (e.g., from a request body)
valid_json_data = {'name': 'Jane Doe', 'age': 25}
invalid_json_data = {'name': '', 'age': 150} # Name missing, age out of range

print("--- Processing valid data ---")
form_valid = UserProfileForm()
form_valid.from_json(valid_json_data) # Populate form from JSON

if form_valid.validate():
    print(f"Form is valid. Data: {form_valid.data}")
else:
    print(f"Form errors: {form_valid.errors}")

print("\n--- Processing invalid data ---")
form_invalid = UserProfileForm()
form_invalid.from_json(invalid_json_data)

if form_invalid.validate():
    print(f"Form is valid. Data: {form_invalid.data}")
else:
    print(f"Form errors: {form_invalid.errors}")

view raw JSON →