Search.setIndex({"docnames": ["api", "changes", "config", "contributing", "csrf", "form", "index", "install", "quickstart"], "filenames": ["api.rst", "changes.rst", "config.rst", "contributing.rst", "csrf.rst", "form.rst", "index.rst", "install.rst", "quickstart.rst"], "titles": ["Developer Interface", "Changes", "Configuration", "How to contribute to Flask-WTF", "CSRF Protection", "Creating Forms", "Flask-WTF", "Installation", "Quickstart"], "terms": {"class": [0, 1, 2, 5, 6, 8], "flask_wtf": [0, 1, 2, 4, 5, 8], "flaskform": [0, 1, 4, 5, 8], "arg": 0, "kwarg": 0, "flask": [0, 1, 2, 4, 5, 7, 8], "specif": [0, 1, 6], "subclass": [0, 1], "wtform": [0, 1, 2, 3, 5, 6, 7, 8], "If": [0, 2, 3, 4, 5, 6, 8], "formdata": 0, "i": [0, 1, 2, 3, 4, 5, 6, 7, 8], "specifi": [0, 1, 5], "thi": [0, 1, 2, 3, 4, 5, 6, 8], "us": [0, 1, 2, 3, 4, 5, 6, 7, 8], "request": [0, 1, 2, 3, 5, 6, 8], "file": [0, 1, 6], "explicitli": [0, 5], "pass": [0, 1, 5, 8], "none": [0, 1, 2, 5], "prevent": 0, "meta": [0, 1, 5], "properti": 0, "bool": [0, 1], "x": [0, 2, 3, 4], "return": [0, 1, 4, 5, 8], "true": [0, 1, 2, 5], "when": [0, 1, 2, 3, 4, 5], "argument": [0, 1], "fals": [0, 1, 2, 4, 5], "otherwis": [0, 5], "The": [0, 1, 3, 5, 7], "builtin": 0, "ar": [0, 1, 2, 6], "onli": [0, 1, 2, 4, 5], "two": 0, "instanc": [0, 5], "int": 0, "cannot": 0, "csrf_field_nam": 0, "str": 0, "object": 0, "bytes_or_buff": 0, "encod": 0, "error": [0, 1, 2, 6, 8], "creat": [0, 3, 6], "new": [0, 1], "string": [0, 1, 5], "from": [0, 1, 2, 5, 6, 7, 8], "given": 0, "must": [0, 5], "expos": [0, 1], "data": [0, 1, 2, 5], "buffer": 0, "decod": 0, "handler": [0, 1, 8], "result": 0, "__str__": 0, "defin": 0, "repr": 0, "default": [0, 1, 2, 3, 4], "sy": 0, "getdefaultencod": 0, "strict": 0, "get_transl": 0, "overrid": [0, 2], "provid": [0, 1, 2, 4, 5, 8], "altern": [0, 1, 2], "translat": [0, 1], "factori": 0, "see": [0, 2, 5], "i18n": [0, 1, 2], "document": [0, 1, 3], "more": [0, 1, 2, 3, 8], "paramet": [0, 1, 5], "an": [0, 1, 2, 3, 4, 5, 7], "gettext": 0, "ngettext": 0, "method": [0, 1, 2, 4, 5, 6, 8], "wrap_formdata": 0, "allow": [0, 1], "do": [0, 1, 3, 4, 8], "custom": [0, 1, 6], "wrapper": 0, "implement": 0, "detect": 0, "webob": 0, "style": [0, 3], "multidict": 0, "wrap": [0, 1, 3], "them": [0, 8], "back": 0, "un": 0, "chang": [0, 3, 5, 6], "A": [0, 1, 2, 5], "input": [0, 1, 4, 8], "compat": [0, 1], "hidden_tag": [0, 1, 8], "render": [0, 4, 5, 8], "": [0, 1, 2, 4, 5], "hidden": [0, 1, 4, 8], "one": [0, 3, 8], "call": [0, 1, 4], "consid": [0, 3], "hiddeninput": 0, "widget": [0, 1], "name": [0, 1, 2, 3, 4, 8], "exist": 0, "version": [0, 3, 6, 8], "0": [0, 3, 6, 8], "13": [0, 6], "No": [0, 1, 3], "longer": [0, 1], "div": [0, 1, 2], "valid": [0, 1, 2, 4, 6], "html": [0, 1, 2, 3, 5, 6, 8], "5": [0, 6], "skip": 0, "aren": 0, "t": [0, 1, 3, 4, 5, 8], "don": [0, 1, 3, 4, 8], "is_submit": [0, 1], "submit": [0, 6, 8], "activ": [0, 3], "post": [0, 1, 2, 3, 4, 5, 8], "put": [0, 1, 2], "patch": [0, 1, 2, 6], "delet": [0, 1, 2], "validate_on_submit": [0, 1, 5, 8], "extra_valid": [0, 1], "shortcut": 0, "declar": 0, "base": [0, 1], "extend": 0, "baseform": 0, "core": 0, "behaviour": 0, "attribut": [0, 1, 5], "In": [0, 4, 5, 8], "addit": [0, 1, 3, 8], "taken": 0, "construct": 0, "time": [0, 1], "process": [0, 1, 4], "recaptchafield": [0, 5], "recaptcha": [0, 1, 6], "messag": [0, 1, 2, 3, 8], "recaptchawidget": 0, "filefield": [0, 1, 5], "werkzeug": [0, 1, 5], "awar": 0, "fileallow": [0, 1, 5], "upload_set": 0, "upload": [0, 6], "list": [0, 3], "extens": [0, 1, 2, 4, 5], "uploadset": [0, 5], "you": [0, 2, 3, 4, 5, 6, 8], "can": [0, 1, 3, 4, 5, 8], "also": [0, 2, 3, 4, 5], "synonym": 0, "file_allow": 0, "filerequir": [0, 1, 5], "filestorag": [0, 5], "file_requir": 0, "csrfprotect": [0, 1, 4], "app": [0, 1, 4, 5, 8], "enabl": [0, 4], "global": [0, 3, 4, 5, 6], "__name__": [0, 4], "check": [0, 1, 2, 3, 4, 5, 8], "csrf_token": [0, 1, 2, 4, 8], "sent": 0, "csrftoken": [0, 2, 4], "header": [0, 2, 4], "javascript": [0, 5, 6], "token": [0, 1, 2, 4, 5, 6, 8], "templat": [0, 1, 2, 4, 5, 8], "exempt": [0, 1, 4], "view": [0, 2, 3, 6, 8], "mark": 0, "blueprint": [0, 1, 4], "exclud": [0, 6], "rout": [0, 4, 5, 8], "some": [0, 4, 5, 6], "def": [0, 4, 5, 8], "some_view": 0, "bp": 0, "csrferror": [0, 1, 4], "descript": [0, 4], "respons": [0, 1, 6], "rais": [0, 1, 4], "client": 0, "send": [0, 4], "invalid": 0, "gener": [0, 1, 2, 3, 5, 7], "400": [0, 1, 4], "bad": 0, "failur": [0, 4], "reason": [0, 4], "regist": [0, 4], "errorhandl": [0, 4], "option": [0, 1, 2, 4, 5], "generate_csrf": [0, 1], "secret_kei": [0, 2, 4], "token_kei": [0, 1], "cach": 0, "so": 0, "multipl": [0, 1, 8], "function": [0, 1, 4, 6], "same": [0, 1, 2, 3, 5], "dure": [0, 1], "test": [0, 1, 4, 5], "might": 0, "access": [0, 1], "sign": [0, 1, 4], "g": [0, 1, 2], "raw": 0, "session": [0, 1, 2, 5], "secur": [0, 2, 4, 6], "wtf_csrf_secret_kei": [0, 2, 4, 5], "kei": [0, 1, 2, 4, 5], "where": [0, 1, 3], "store": [0, 1], "comparison": 0, "wtf_csrf_field_nam": [0, 1, 2], "validate_csrf": [0, 1], "time_limit": [0, 1], "compar": 0, "number": [0, 5], "second": [0, 2], "wtf_csrf_time_limit": [0, 2], "3600": [0, 2], "60": 0, "minut": 0, "validationerror": [0, 1], "contain": [0, 7], "fail": [0, 3, 4], "14": [0, 6], "rather": 0, "than": 0, "releas": [1, 3, 6], "2023": 1, "01": 1, "17": 1, "fix": [1, 3], "548": 1, "drop": 1, "support": [1, 2, 5, 6], "python": [1, 3, 7], "6": 1, "take": 1, "479": 1, "stop": 1, "babelex": 1, "540": 1, "542": 1, "remov": 1, "unus": 1, "jsonencod": 1, "536": 1, "2022": 1, "03": 1, "31": 1, "updat": [1, 3], "latest": [1, 3, 7], "511": 1, "2021": 1, "07": 1, "deprec": 1, "item": 1, "484": 1, "captcha": [1, 2], "servic": [1, 2], "425": 1, "342": 1, "387": 1, "384": 1, "05": 1, "25": 1, "add": [1, 3, 4, 8], "python_requir": 1, "metadata": 1, "avoid": 1, "instal": [1, 3, 6, 8], "unsupport": 1, "442": 1, "24": 1, "416": 1, "files": 1, "307": 1, "365": 1, "extra": 1, "requir": [1, 2, 3, 4, 5], "email": [1, 3], "email_valid": 1, "packag": [1, 7], "423": 1, "warn": 1, "434": 1, "variou": 1, "315": 1, "321": 1, "335": 1, "344": 1, "386": 1, "404": 1, "420": 1, "437": 1, "ci": [1, 3], "405": 1, "438": 1, "2020": 1, "02": 1, "06": 1, "import": [1, 4, 5, 8], "collect": 1, "2017": 1, "bug": [1, 3], "assum": [1, 8], "wa": [1, 3], "278": 1, "would": [1, 3, 8], "incorrectli": 1, "identifi": [1, 3], "empti": [1, 5], "276": 1, "277": 1, "set": [1, 2, 3, 4, 5], "has_fil": 1, "now": 1, "equival": [1, 5], "field": [1, 2, 4, 5, 6, 8], "work": [1, 3, 5, 6], "both": [1, 5], "wtf": [1, 5, 7, 8], "itsdanger": 1, "csrf": [1, 2, 5, 6, 8], "expir": 1, "instead": 1, "ourselv": 1, "264": 1, "all": [1, 2, 4], "url": 1, "safe": 1, "url_saf": 1, "206": 1, "timestamp": 1, "which": [1, 3, 5, 6], "current_app": 1, "protect": [1, 2, 5, 6], "lifetim": 1, "It": [1, 5, 8], "227": 1, "error_handl": 1, "those": [1, 4], "behavior": 1, "clear": 1, "previou": 1, "doc": [1, 5], "200": 1, "209": 1, "243": 1, "252": 1, "form": [1, 2, 6], "secureform": 1, "everyth": 1, "els": 1, "216": 1, "271": 1, "csrf_enabl": 1, "still": [1, 2], "recogn": 1, "other": [1, 3, 4], "configur": [1, 3, 4, 5, 6], "break": 1, "anyth": [1, 8], "directli": [1, 2, 5], "239": 1, "log": [1, 6], "well": [1, 4, 5], "renam": 1, "issu": [1, 6], "old": 1, "without": [1, 3, 5], "becaus": 1, "over": [1, 8], "272": 1, "2016": 1, "shown": 1, "__init__": 1, "immedi": 1, "262": 1, "pkg_resourc": 1, "get": [1, 3, 4, 5, 6, 8], "gae": 1, "261": 1, "09": 1, "29": 1, "order": [1, 2, 5], "collis": 1, "show": [1, 3], "250": 1, "html5": 1, "ani": [1, 3, 4, 5, 8], "modern": 1, "parser": 1, "behav": 1, "correctli": 1, "193": 1, "217": 1, "251": 1, "187": 1, "except": [1, 3], "248": 1, "part": [1, 6], "tar": [1, 7], "gz": [1, 7], "201": 1, "2015": 1, "abstract": 1, "protect_csrf": 1, "separ": [1, 4], "handl": [1, 5], "21": 1, "api": [1, 2, 5], "164": 1, "2014": 1, "16": 1, "wtf_csrf_header": [1, 2], "159": 1, "tag": 1, "150": 1, "And": [1, 5, 8], "mani": 1, "146": 1, "08": 1, "26": 1, "recaptcha_api_server_url": 1, "145": 1, "143": 1, "wtf_csrf_method": [1, 2], "limit": 1, "csrf_exempt": 1, "111": 1, "type": [1, 4, 8], "112": 1, "make": [1, 3, 4], "inputrequir": 1, "108": 1, "2013": 1, "20": [1, 8], "bugfix": 1, "modul": 1, "ha": [1, 8], "prefix": 1, "mode": [1, 3], "89": 1, "91": 1, "upgrad": [1, 3, 7], "lazi": 1, "77": 1, "dateinput": 1, "81": 1, "86": 1, "82": 1, "65": 1, "redesign": 1, "replac": [1, 3], "sessionsecureform": 1, "solut": 1, "case": [1, 2], "90": 1, "coverag": 1, "28": 1, "66": 1, "minor": 1, "bark": 1, "nose": 1, "multiprocess": 1, "indic": [1, 3], "pend": 1, "namespac": 1, "facad": 1, "pep8": 1, "64": 1, "49": 1, "initi": 1, "develop": [1, 3, 5, 6], "dan": 1, "jacob": 1, "ron": 1, "duplain": 1, "wtf_csrf_enabl": [2, 5], "disabl": [2, 4, 5], "wtf_csrf_check_default": [2, 4], "control": 2, "whether": 2, "everi": 2, "random": [2, 5], "http": [2, 3, 5, 7], "hold": 2, "search": [2, 3], "max": 2, "ag": 2, "life": 2, "wtf_csrf_ssl_strict": 2, "enforc": 2, "origin": [2, 3], "polici": 2, "referr": 2, "match": 2, "host": 2, "appli": [2, 4], "wtf_i18n_en": 2, "babel": [2, 6], "want": [2, 3, 5], "built": 2, "info": 2, "here": [2, 6], "recaptcha_public_kei": [2, 5], "public": [2, 5], "recaptcha_private_kei": [2, 5], "privat": [2, 5], "www": 2, "googl": [2, 3, 5], "com": [2, 3, 5, 7], "admin": 2, "recaptcha_paramet": [2, 5], "dict": [2, 5], "recaptcha_html": 2, "recaptcha_data_attr": [2, 5], "attr": 2, "recaptcha_script": 2, "script": [2, 3, 4], "uri": 2, "e": [2, 3, 4, 7], "hcaptcha": 2, "j": [2, 5], "recaptcha_div_class": 2, "recaptcha_verify_serv": 2, "verif": 2, "server": [2, 5], "siteverifi": 2, "level": 2, "logger": 2, "need": [2, 3, 4, 8], "your": [2, 3, 4, 5, 7, 8], "applic": [2, 5, 8], "thank": 3, "pleas": 3, "tracker": 3, "tool": 3, "address": 3, "featur": 3, "itself": 3, "follow": 3, "resourc": 3, "about": [3, 6, 7], "own": 3, "help": 3, "channel": 3, "our": 3, "discord": 3, "chat": 3, "gg": 3, "pallet": 3, "mail": 3, "org": 3, "long": 3, "term": 3, "discuss": 3, "larger": 3, "ask": 3, "stack": 3, "overflow": 3, "site": 3, "stackoverflow": 3, "etc": 3, "includ": [3, 6, 8], "inform": [3, 6, 7], "describ": 3, "what": 3, "expect": 3, "happen": 3, "possibl": 3, "minim": 3, "reproduc": 3, "exampl": [3, 4, 5, 8], "u": [3, 7], "actual": 3, "full": 3, "traceback": 3, "alreadi": [3, 4, 8], "repositori": [3, 7], "open": 3, "prefer": 3, "befor": [3, 4], "pr": 3, "doesn": [3, 4], "have": [3, 4, 5, 8], "link": 3, "maintain": 3, "assign": 3, "These": 3, "up": 3, "sidebar": 3, "interest": 3, "black": 3, "format": 3, "automat": [3, 8], "pre": [3, 4], "commit": 3, "instruct": [3, 6], "below": 3, "sure": 3, "relev": 3, "page": [3, 8], "docstr": 3, "should": 3, "72": 3, "charact": 3, "entri": 3, "rst": 3, "versionchang": 3, "inlin": 3, "changelog": [3, 6], "download": 3, "git": [3, 7], "usernam": [3, 5], "config": [3, 5], "user": 3, "github": [3, 5, 7], "account": 3, "fork": 3, "click": 3, "button": 3, "clone": [3, 7], "main": [3, 7], "local": 3, "cd": 3, "remot": 3, "push": 3, "virtualenv": 3, "python3": 3, "m": 3, "venv": 3, "env": 3, "bin": 3, "On": 3, "window": 3, "differ": [3, 5], "pip": [3, 7], "setuptool": 3, "depend": [3, 7], "edit": 3, "r": 3, "dev": 3, "txt": 3, "hook": 3, "branch": 3, "like": [3, 4, 8], "re": 3, "off": 3, "fetch": 3, "checkout": 3, "b": 3, "1": [3, 6], "favorit": 3, "editor": 3, "go": [3, 8], "cover": 3, "pull": 3, "being": 3, "123": 3, "upstream": 3, "basic": 3, "suit": 3, "pytest": 3, "current": 3, "environ": 3, "usual": [3, 5], "suffici": 3, "tox": 3, "wait": 3, "line": 3, "htmlcov": 3, "index": [3, 5], "browser": 3, "explor": 3, "read": 3, "directori": 3, "sphinx": 3, "_build": 3, "ajax": 4, "To": 4, "lazili": 4, "create_app": 4, "init_app": 4, "secret": [4, 5], "By": 4, "d": 4, "normal": 4, "valu": [4, 8], "For": [4, 5, 8], "jqueri": 4, "text": 4, "var": 4, "ajaxsetup": 4, "beforesend": 4, "xhr": 4, "head": [4, 8], "trace": 4, "crossdomain": 4, "setrequesthead": 4, "axio": 4, "common": 4, "code": [4, 7], "handle_csrf_error": 4, "render_templ": [4, 5, 8], "csrf_error": 4, "we": [4, 5], "strongli": 4, "suggest": 4, "But": [4, 5], "decor": 4, "foo": 4, "my_handl": 4, "ok": 4, "account_blueprint": 4, "select": 4, "before_request": 4, "check_csrf": 4, "is_oauth": 4, "encourag": 5, "though": 5, "realli": 5, "shouldn": 5, "anoth": 5, "non": 5, "util": 5, "secure_filenam": 5, "photoform": 5, "photo": 5, "f": 5, "filenam": 5, "save": 5, "o": 5, "path": 5, "join": 5, "instance_path": 5, "redirect": [5, 8], "url_for": 5, "rememb": 5, "enctyp": 5, "multipart": 5, "combin": 5, "datastructur": 5, "combinedmultidict": 5, "thei": 5, "flask_upload": 5, "imag": 5, "uploadform": 5, "jpg": 5, "png": 5, "through": 5, "textfield": 5, "signupform": 5, "come": 5, "variabl": 5, "recaptcha_api_serv": 5, "displai": [5, 8], "javascript_resource_apijs_paramet": 5, "hl": 5, "zh": 5, "explicit": 5, "theme": 5, "dark": 5, "conveni": [5, 8], "alwai": 5, "easili": 5, "setup": [5, 6], "action": [5, 8], "simpl": 6, "integr": [6, 8], "internation": 6, "mostli": 6, "prose": 6, "begin": 6, "background": 6, "focus": 6, "step": 6, "most": 6, "out": 6, "quickstart": 6, "look": [6, 8], "interfac": 6, "legal": 6, "15": 6, "3": 6, "2": 6, "12": 6, "11": 6, "10": 6, "9": [6, 8], "4": 6, "8": 6, "prior": 6, "how": [6, 7], "contribut": 6, "question": 6, "report": 6, "guid": 7, "manag": 7, "project": 7, "avail": 7, "Or": 7, "build": 7, "archiv": 7, "eager": 8, "start": 8, "give": 8, "good": 8, "introduct": 8, "section": 8, "stringfield": 8, "datarequir": 8, "myform": 8, "label": 8, "size": 8, "block": 8, "success": 8, "note": 8, "load": 8, "ll": 8, "abov": 8, "ul": 8, "li": 8, "endfor": 8, "endif": 8, "learn": 8, "skill": 8}, "objects": {"": [[0, 0, 0, "-", "flask_wtf"]], "flask_wtf": [[0, 1, 1, "", "FlaskForm"], [0, 1, 1, "", "Form"], [0, 1, 1, "", "Recaptcha"], [0, 1, 1, "", "RecaptchaField"], [0, 1, 1, "", "RecaptchaWidget"], [0, 0, 0, "-", "csrf"], [0, 0, 0, "-", "file"]], "flask_wtf.FlaskForm": [[0, 1, 1, "", "Meta"], [0, 3, 1, "", "hidden_tag"], [0, 3, 1, "", "is_submitted"], [0, 3, 1, "", "validate_on_submit"]], "flask_wtf.FlaskForm.Meta": [[0, 2, 1, "", "csrf"], [0, 2, 1, "", "csrf_field_name"], [0, 3, 1, "", "get_translations"], [0, 3, 1, "", "wrap_formdata"]], "flask_wtf.csrf": [[0, 1, 1, "", "CSRFError"], [0, 1, 1, "", "CSRFProtect"], [0, 4, 1, "", "generate_csrf"], [0, 4, 1, "", "validate_csrf"]], "flask_wtf.csrf.CSRFProtect": [[0, 3, 1, "", "exempt"]], "flask_wtf.file": [[0, 1, 1, "", "FileAllowed"], [0, 1, 1, "", "FileField"], [0, 1, 1, "", "FileRequired"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:property", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "property", "Python property"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"develop": [0, 7], "interfac": 0, "form": [0, 4, 5, 8], "field": 0, "csrf": [0, 4], "protect": [0, 4], "chang": 1, "version": [1, 7], "1": 1, "0": 1, "15": 1, "14": 1, "3": 1, "2": 1, "13": 1, "12": 1, "11": 1, "10": 1, "9": 1, "5": 1, "4": 1, "8": 1, "prior": 1, "configur": 2, "recaptcha": [2, 5], "log": 2, "how": 3, "contribut": 3, "flask": [3, 6], "wtf": [3, 6], "support": 3, "question": 3, "report": 3, "issu": 3, "submit": 3, "patch": 3, "first": 3, "time": 3, "setup": [3, 4], "start": 3, "code": 3, "run": 3, "test": 3, "coverag": 3, "build": 3, "doc": 3, "html": 4, "javascript": 4, "request": 4, "custom": 4, "error": 4, "respons": 4, "exclud": 4, "view": 4, "from": 4, "creat": [5, 8], "secur": 5, "file": 5, "upload": 5, "valid": [5, 8], "featur": 6, "user": 6, "": 6, "guid": 6, "api": 6, "document": 6, "addit": 6, "note": 6, "instal": 7, "releas": 7, "quickstart": 8}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 57}, "alltitles": {"Developer Interface": [[0, "developer-interface"]], "Forms and Fields": [[0, "module-flask_wtf"]], "CSRF Protection": [[0, "module-flask_wtf.csrf"], [4, "csrf-protection"]], "Changes": [[1, "changes"]], "Version 1.1.1": [[1, "version-1-1-1"]], "Version 1.1.0": [[1, "version-1-1-0"]], "Version 1.0.1": [[1, "version-1-0-1"]], "Version 1.0.0": [[1, "version-1-0-0"]], "Version 0.15.1": [[1, "version-0-15-1"]], "Version 0.15.0": [[1, "version-0-15-0"]], "Version 0.14.3": [[1, "version-0-14-3"]], "Version 0.14.2": [[1, "version-0-14-2"]], "Version 0.14.1": [[1, "version-0-14-1"]], "Version 0.14": [[1, "version-0-14"]], "Version 0.13.1": [[1, "version-0-13-1"]], "Version 0.13": [[1, "version-0-13"]], "Version 0.12": [[1, "version-0-12"]], "Version 0.11": [[1, "version-0-11"]], "Version 0.10.3": [[1, "version-0-10-3"]], "Version 0.10.2": [[1, "version-0-10-2"]], "Version 0.10.1": [[1, "version-0-10-1"]], "Version 0.10.0": [[1, "version-0-10-0"]], "Version 0.9.5": [[1, "version-0-9-5"]], "Version 0.9.4": [[1, "version-0-9-4"]], "Version 0.9.3": [[1, "version-0-9-3"]], "Version 0.9.2": [[1, "version-0-9-2"]], "Version 0.9.1": [[1, "version-0-9-1"]], "Version 0.9.0": [[1, "version-0-9-0"]], "Version 0.8.4": [[1, "version-0-8-4"]], "Version 0.8.3": [[1, "version-0-8-3"]], "Version 0.8.2 and prior": [[1, "version-0-8-2-and-prior"]], "Configuration": [[2, "configuration"]], "Recaptcha": [[2, "recaptcha"], [5, "recaptcha"]], "Logging": [[2, "logging"]], "How to contribute to Flask-WTF": [[3, "how-to-contribute-to-flask-wtf"]], "Support questions": [[3, "support-questions"]], "Reporting issues": [[3, "reporting-issues"]], "Submitting patches": [[3, "submitting-patches"]], "First time setup": [[3, "first-time-setup"]], "Start coding": [[3, "start-coding"]], "Running the tests": [[3, "running-the-tests"]], "Running test coverage": [[3, "running-test-coverage"]], "Building the docs": [[3, "building-the-docs"]], "Setup": [[4, "setup"]], "HTML Forms": [[4, "html-forms"]], "JavaScript Requests": [[4, "javascript-requests"]], "Customize the error response": [[4, "customize-the-error-response"]], "Exclude views from protection": [[4, "exclude-views-from-protection"]], "Creating Forms": [[5, "creating-forms"], [8, "creating-forms"]], "Secure Form": [[5, "secure-form"]], "File Uploads": [[5, "file-uploads"]], "Validation": [[5, "validation"]], "Flask-WTF": [[6, "flask-wtf"]], "Features": [[6, "features"]], "User\u2019s Guide": [[6, "user-s-guide"]], "API Documentation": [[6, "api-documentation"]], "Additional Notes": [[6, "additional-notes"]], "Installation": [[7, "installation"]], "Released version": [[7, "released-version"]], "Development": [[7, "development"]], "Quickstart": [[8, "quickstart"]], "Validating Forms": [[8, "validating-forms"]]}, "indexentries": {"csrferror (class in flask_wtf.csrf)": [[0, "flask_wtf.csrf.CSRFError"]], "csrfprotect (class in flask_wtf.csrf)": [[0, "flask_wtf.csrf.CSRFProtect"]], "fileallowed (class in flask_wtf.file)": [[0, "flask_wtf.file.FileAllowed"]], "filefield (class in flask_wtf.file)": [[0, "flask_wtf.file.FileField"]], "filerequired (class in flask_wtf.file)": [[0, "flask_wtf.file.FileRequired"]], "flaskform (class in flask_wtf)": [[0, "flask_wtf.FlaskForm"]], "flaskform.meta (class in flask_wtf)": [[0, "flask_wtf.FlaskForm.Meta"]], "form (class in flask_wtf)": [[0, "flask_wtf.Form"]], "recaptcha (class in flask_wtf)": [[0, "flask_wtf.Recaptcha"]], "recaptchafield (class in flask_wtf)": [[0, "flask_wtf.RecaptchaField"]], "recaptchawidget (class in flask_wtf)": [[0, "flask_wtf.RecaptchaWidget"]], "csrf (flask_wtf.flaskform.meta property)": [[0, "flask_wtf.FlaskForm.Meta.csrf"]], "csrf_field_name (flask_wtf.flaskform.meta property)": [[0, "flask_wtf.FlaskForm.Meta.csrf_field_name"]], "exempt() (flask_wtf.csrf.csrfprotect method)": [[0, "flask_wtf.csrf.CSRFProtect.exempt"]], "flask_wtf": [[0, "module-flask_wtf"]], "flask_wtf.csrf": [[0, "module-flask_wtf.csrf"]], "flask_wtf.file": [[0, "module-flask_wtf.file"]], "generate_csrf() (in module flask_wtf.csrf)": [[0, "flask_wtf.csrf.generate_csrf"]], "get_translations() (flask_wtf.flaskform.meta method)": [[0, "flask_wtf.FlaskForm.Meta.get_translations"]], "hidden_tag() (flask_wtf.flaskform method)": [[0, "flask_wtf.FlaskForm.hidden_tag"]], "is_submitted() (flask_wtf.flaskform method)": [[0, "flask_wtf.FlaskForm.is_submitted"]], "module": [[0, "module-flask_wtf"], [0, "module-flask_wtf.csrf"], [0, "module-flask_wtf.file"]], "validate_csrf() (in module flask_wtf.csrf)": [[0, "flask_wtf.csrf.validate_csrf"]], "validate_on_submit() (flask_wtf.flaskform method)": [[0, "flask_wtf.FlaskForm.validate_on_submit"]], "wrap_formdata() (flask_wtf.flaskform.meta method)": [[0, "flask_wtf.FlaskForm.Meta.wrap_formdata"]]}})