Flask-APIForm

A simple form validator for REST APIs in Flask


License
BSD-3-Clause
Install
pip install Flask-APIForm==1.2

Documentation

Flask-APIForm

A simple form validator for REST APIs in Flask.

To install it :

pip install Flask-APIForm

Fields

Field Properties
Field required (boolean, default=True), allowed (list or tuple), default, source (args [default], form, files, or url)
FileField extensions (list or tuple),
StringField minlength, maxlength, regex
EmailField
NumField min, max
IntField base (default=10)
HexField length, filter (function)

Example

from flask import Flask, request, Response
from flaskext.apiform import Form, StringField, IntField

try:
	from json import dumps
except ImportError:
	from simplejson import dumps

def json(response='', code=200, headers=None):
	return Response(dumps(response), code, mimetype='application/json', headers=headers)

class IndexForm(Form):
	name = StringField(minlength=1, maxlength=20)
	age = IntField(min=1, max=120)


app = Flask(__name__)

@app.route("/")
def index():
	form = IndexForm(request)
	if not form.validate():
		return json({'message': 'Validation Failed', 'errors': form.errors}, 422)
		
	return json({'name': form.name, 'age': form.age})

if __name__ == "__main__":
	app.debug = True
	app.run()