From b92150776374046a26d318a2be9d3e5ef01b9d3a Mon Sep 17 00:00:00 2001 From: Massimo Di Pierro Date: Sun, 2 Jun 2024 13:09:57 -0700 Subject: [PATCH] better docs: extra_fields, form examples, IS_SAFE, scheduler --- apps/_documentation/static/en/.buildinfo | 2 +- .../static/en/_images/form2.png | Bin 40409 -> 0 bytes .../static/en/_images/form3.png | Bin 37805 -> 0 bytes .../static/en/_images/form4.png | Bin 46250 -> 0 bytes .../static/en/_images/form5.png | Bin 39765 -> 0 bytes .../static/en/_images/form6.png | Bin 38066 -> 0 bytes .../en/_static/documentation_options.js | 2 +- apps/_documentation/static/en/chapter-01.html | 10 +- apps/_documentation/static/en/chapter-02.html | 8 +- apps/_documentation/static/en/chapter-03.html | 8 +- apps/_documentation/static/en/chapter-04.html | 8 +- apps/_documentation/static/en/chapter-05.html | 8 +- apps/_documentation/static/en/chapter-06.html | 21 +- apps/_documentation/static/en/chapter-07.html | 8 +- apps/_documentation/static/en/chapter-08.html | 8 +- apps/_documentation/static/en/chapter-09.html | 8 +- apps/_documentation/static/en/chapter-10.html | 8 +- apps/_documentation/static/en/chapter-11.html | 8 +- apps/_documentation/static/en/chapter-12.html | 278 ++++++++-------- apps/_documentation/static/en/chapter-13.html | 10 +- apps/_documentation/static/en/chapter-14.html | 8 +- apps/_documentation/static/en/chapter-15.html | 8 +- apps/_documentation/static/en/chapter-16.html | 77 ++++- apps/_documentation/static/en/genindex.html | 8 +- apps/_documentation/static/en/index.html | 10 +- apps/_documentation/static/en/objects.inv | Bin 8244 -> 8271 bytes apps/_documentation/static/en/search.html | 8 +- apps/_documentation/static/en/searchindex.js | 2 +- apps/_documentation/static/pt/.buildinfo | 2 +- .../static/pt/_images/form2.png | Bin 40409 -> 0 bytes .../static/pt/_images/form3.png | Bin 37805 -> 0 bytes .../static/pt/_images/form4.png | Bin 46250 -> 0 bytes .../static/pt/_images/form5.png | Bin 39765 -> 0 bytes .../static/pt/_images/form6.png | Bin 38066 -> 0 bytes .../pt/_static/documentation_options.js | 2 +- apps/_documentation/static/pt/chapter-01.html | 10 +- apps/_documentation/static/pt/chapter-02.html | 8 +- apps/_documentation/static/pt/chapter-03.html | 8 +- apps/_documentation/static/pt/chapter-04.html | 8 +- apps/_documentation/static/pt/chapter-05.html | 8 +- apps/_documentation/static/pt/chapter-06.html | 21 +- apps/_documentation/static/pt/chapter-07.html | 8 +- apps/_documentation/static/pt/chapter-08.html | 8 +- apps/_documentation/static/pt/chapter-09.html | 8 +- apps/_documentation/static/pt/chapter-10.html | 8 +- apps/_documentation/static/pt/chapter-11.html | 8 +- apps/_documentation/static/pt/chapter-12.html | 278 ++++++++-------- apps/_documentation/static/pt/chapter-13.html | 10 +- apps/_documentation/static/pt/chapter-14.html | 8 +- apps/_documentation/static/pt/chapter-15.html | 8 +- apps/_documentation/static/pt/chapter-16.html | 77 ++++- apps/_documentation/static/pt/genindex.html | 8 +- apps/_documentation/static/pt/index.html | 10 +- apps/_documentation/static/pt/objects.inv | Bin 9311 -> 9341 bytes apps/_documentation/static/pt/search.html | 8 +- apps/_documentation/static/pt/searchindex.js | 2 +- docs/chapter-06.rst | 17 + docs/chapter-12.rst | 300 +++++++++--------- docs/chapter-16.rst | 78 +++++ 59 files changed, 843 insertions(+), 584 deletions(-) delete mode 100644 apps/_documentation/static/en/_images/form2.png delete mode 100644 apps/_documentation/static/en/_images/form3.png delete mode 100644 apps/_documentation/static/en/_images/form4.png delete mode 100644 apps/_documentation/static/en/_images/form5.png delete mode 100644 apps/_documentation/static/en/_images/form6.png delete mode 100644 apps/_documentation/static/pt/_images/form2.png delete mode 100644 apps/_documentation/static/pt/_images/form3.png delete mode 100644 apps/_documentation/static/pt/_images/form4.png delete mode 100644 apps/_documentation/static/pt/_images/form5.png delete mode 100644 apps/_documentation/static/pt/_images/form6.png diff --git a/apps/_documentation/static/en/.buildinfo b/apps/_documentation/static/en/.buildinfo index e34a55385..2dc9ba75f 100644 --- a/apps/_documentation/static/en/.buildinfo +++ b/apps/_documentation/static/en/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 620d5de7eb60ba809ac3e2b9f9dd9628 +config: 44b3435943ab4835c7a6a204b6a121fa tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/apps/_documentation/static/en/_images/form2.png b/apps/_documentation/static/en/_images/form2.png deleted file mode 100644 index b83647c2fd7639a88faec31dccda6191d32af82e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40409 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 V{pno7&r<-YX+L_RUaDph@;`6u_v`=w diff --git a/apps/_documentation/static/en/_images/form3.png b/apps/_documentation/static/en/_images/form3.png deleted file mode 100644 index 3de9bbba91accbd3214b36b1f77fc7529dd31c4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37805 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 Yc|z^m#ml>E4Hh($ diff --git a/apps/_documentation/static/en/_images/form4.png b/apps/_documentation/static/en/_images/form4.png deleted file mode 100644 index 9534e468393818f575e4f09686661df752fd9acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46250 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 RP5_Wi;+u?Uxv=i<{{i#JLm&VE diff --git a/apps/_documentation/static/en/_images/form5.png b/apps/_documentation/static/en/_images/form5.png deleted file mode 100644 index 9b88b04ada442ec5bc56395aa6b1255392bff04c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39765 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

18L%J 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 XZ_KwSmJ;zQM1)ISMO(Q-(JJzPojxlp diff --git a/apps/_documentation/static/en/_images/form6.png b/apps/_documentation/static/en/_images/form6.png deleted file mode 100644 index 9761c347e96b8013335296bec2163402d16c9330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38066 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 F{||)n@zwwU diff --git a/apps/_documentation/static/en/_static/documentation_options.js b/apps/_documentation/static/en/_static/documentation_options.js index f8949eb32..11dad5b5c 100644 --- a/apps/_documentation/static/en/_static/documentation_options.js +++ b/apps/_documentation/static/en/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.20240420.2', + VERSION: '1.20240530.2', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/apps/_documentation/static/en/chapter-01.html b/apps/_documentation/static/en/chapter-01.html index b543dee9b..361f3aa44 100644 --- a/apps/_documentation/static/en/chapter-01.html +++ b/apps/_documentation/static/en/chapter-01.html @@ -4,7 +4,7 @@ - What is py4web? — py4web 1.20240420.2 documentation + What is py4web? — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@

- 1.20240420.2 + 1.20240530.2
@@ -215,7 +215,7 @@

Acknowledgmentssugizo

  • valq7711

  • Kevin Keller

  • -
  • Sam de Alfaro (logo design)

  • +
  • Sam de Alfaro sam@dealfaro.com (logo design)

  • Special thanks to Sam de Alfaro, who designed the official logo of py4web. We friendly call the logo “Axel the axolotl”: it magically represents the sense of kindness and inclusion. We believe it’s the cornerstone of our growing community.

    _images/logo.png @@ -258,7 +258,7 @@

    Acknowledgments - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-02.html b/apps/_documentation/static/en/chapter-02.html index 1c5bfabc9..8bd56302d 100644 --- a/apps/_documentation/static/en/chapter-02.html +++ b/apps/_documentation/static/en/chapter-02.html @@ -4,7 +4,7 @@ - Help, resources and hints — py4web 1.20240420.2 documentation + Help, resources and hints — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -273,7 +273,7 @@

    How to contribute - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-03.html b/apps/_documentation/static/en/chapter-03.html index 04adc53d1..89c09c798 100644 --- a/apps/_documentation/static/en/chapter-03.html +++ b/apps/_documentation/static/en/chapter-03.html @@ -4,7 +4,7 @@ - Installation and Startup — py4web 1.20240420.2 documentation + Installation and Startup — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -730,7 +730,7 @@

    Deployment on Ubuntu - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-04.html b/apps/_documentation/static/en/chapter-04.html index 1552e5ec1..f15f6be9b 100644 --- a/apps/_documentation/static/en/chapter-04.html +++ b/apps/_documentation/static/en/chapter-04.html @@ -4,7 +4,7 @@ - The Dashboard — py4web 1.20240420.2 documentation + The Dashboard — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -200,7 +200,7 @@

    Login into the Dashboard - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-05.html b/apps/_documentation/static/en/chapter-05.html index 39d7fc052..f08a49d17 100644 --- a/apps/_documentation/static/en/chapter-05.html +++ b/apps/_documentation/static/en/chapter-05.html @@ -4,7 +4,7 @@ - Creating an app — py4web 1.20240420.2 documentation + Creating an app — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -502,7 +502,7 @@

    Watch for files change - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-06.html b/apps/_documentation/static/en/chapter-06.html index 0f261be95..be87ec930 100644 --- a/apps/_documentation/static/en/chapter-06.html +++ b/apps/_documentation/static/en/chapter-06.html @@ -4,7 +4,7 @@ - Fixtures — py4web 1.20240420.2 documentation + Fixtures — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -707,6 +707,19 @@

    The Auth fixtureauth_user table is defined before calling auth.enable() +the provided table withh be used.

    +

    It is also possible to add extra_fields to the auth_user table, +for example:

    +
    extra_fields = [
    +   Field("favorite_color"),
    +]
    +auth = Auth(session, db, extra_fields=extra_fields)
    +
    +
    +

    In any case, we recommend not to pollute the auth_user table with +extra fields but, instead, to use one of more additional custom +tables that reference users and store the required information.

    The auth object exposes the method:auth.enable() which registers multiple actions including {appname}/auth/login. It requires the presence of the auth.html template and the @@ -993,7 +1006,7 @@

    Convenience Decorators - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-07.html b/apps/_documentation/static/en/chapter-07.html index 2e2b4475a..e1298d599 100644 --- a/apps/_documentation/static/en/chapter-07.html +++ b/apps/_documentation/static/en/chapter-07.html @@ -4,7 +4,7 @@ - The Database Abstraction Layer (DAL) — py4web 1.20240420.2 documentation + The Database Abstraction Layer (DAL) — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -4534,7 +4534,7 @@

    Google NoSQL (Datastore) - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-08.html b/apps/_documentation/static/en/chapter-08.html index 923f34e85..f77ccbbd7 100644 --- a/apps/_documentation/static/en/chapter-08.html +++ b/apps/_documentation/static/en/chapter-08.html @@ -4,7 +4,7 @@ - The RestAPI — py4web 1.20240420.2 documentation + The RestAPI — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -1171,7 +1171,7 @@

    The RestAPI response - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-09.html b/apps/_documentation/static/en/chapter-09.html index 7ab308de5..d3cefbb98 100644 --- a/apps/_documentation/static/en/chapter-09.html +++ b/apps/_documentation/static/en/chapter-09.html @@ -4,7 +4,7 @@ - YATL Template Language — py4web 1.20240420.2 documentation + YATL Template Language — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -762,7 +762,7 @@

    Mobile development - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-10.html b/apps/_documentation/static/en/chapter-10.html index dbe5e4463..d1721515b 100644 --- a/apps/_documentation/static/en/chapter-10.html +++ b/apps/_documentation/static/en/chapter-10.html @@ -4,7 +4,7 @@ - YATL helpers — py4web 1.20240420.2 documentation + YATL helpers — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -872,7 +872,7 @@

    Using Inject - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-11.html b/apps/_documentation/static/en/chapter-11.html index a77e57f94..801b77379 100644 --- a/apps/_documentation/static/en/chapter-11.html +++ b/apps/_documentation/static/en/chapter-11.html @@ -4,7 +4,7 @@ - Internationalization — py4web 1.20240420.2 documentation + Internationalization — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -220,7 +220,7 @@

    Update the translation files - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-12.html b/apps/_documentation/static/en/chapter-12.html index 1c620fb31..f5f116969 100644 --- a/apps/_documentation/static/en/chapter-12.html +++ b/apps/_documentation/static/en/chapter-12.html @@ -4,7 +4,7 @@ - Forms — py4web 1.20240420.2 documentation + Forms — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -186,8 +186,59 @@

    Forms

    The Form class provides a high-level API for quickly building CRUD (create, update and delete) forms, especially for working on an existing database table. It can generate and process a form from a -list of desired fields and/or from an existing database table. -It is a pretty much equivalent to web2py’s SQLFORM.

    +list of desired fields and/or from an existing database table.

    +

    There are 3 typs of forms:

    +

    CRUD Create forms:

    +
    @action('create_thing')
    +@action.uses('generic.html', db, flash)
    +def create_thing():
    +    form = Form(db.thing)
    +    if form.accepted:
    +        flash.set("record created")
    +        redirect(URL('other_page'))
    +    return locals()
    +
    +
    +

    CRUD Update forms:

    +
    @action('update_thing/<thing_id:int>')
    +@action.uses('generic.html', db, flash)
    +def update_thing(thing_id):
    +    form = Form(db.thing, thing_id)
    +    if form.accepted:
    +        flash.set("record updated")
    +        redirect(URL('other_page'))
    +    return locals()
    +
    +
    +

    Non-CRUD forms (not associated to a database):

    +
    @action('some_form')
    +@action.uses('generic.html', flash)
    +def some_form():
    +    fields = [
    +        Field("name", requires=IS_NOT_EMPTY()),
    +        Field("color", required=IS_IN_SET(["red","blue","green"])),
    +    ]
    +    form = Form(fields)
    +    if form.accepted:
    +        flash.set("information recorded")
    +        redirect(URL('other_page'))
    +    return locals()
    +
    +
    +

    The use of flash is optional. flash is defined in common.py +in the scaffolding application. It simply stores a message in a cookie +so it can be recovered and displayed after redirection. +This is done in the default layout.

    +

    In this chapter from now on we will assume the following model and +an app derived from the scaffolding app:

    +
    db.define_table(
    +    'thing',
    +    Field('name', requires=IS_NOT_EMPTY()),
    +    Field('color', requires=IS_IN_SET('red','blue','green'])),
    +    Field('image', 'upload'),
    +)
    +
    +

    The Form constructor

    The Form constructor accepts the following arguments:

    @@ -231,21 +282,21 @@

    The Form constructorA minimal form example without a database

    Let’s start with a minimal working form example. Create a new minimal app called form_minimal :

    -
    # in form_minimal/__init__.py
    -from py4web import action, Field, redirect, URL
    +
    # in controllers.py
    +from py4web impot action, redirect, URL, Field
     from py4web.utils.form import Form
    -from pydal.validators import IS_NOT_EMPTY
    -
    +from pydal.validators import *
     
     @action('index', method=['GET', 'POST'])
     @action.uses('form_minimal.html')
     def index():
    -    form = Form([
    -        Field('product_name'),
    -        Field('product_quantity', 'integer', requires=IS_NOT_EMPTY()),
    -        ])
    +    fields = [
    +        Field('name', requires=IS_NOT_EMPTY()),
    +        Field('color', requires=IS_SET(['red','blue','green']),
    +    ]
    +    form = Form(fields)
         if form.accepted:
    -        # Do something with form.vars['product_name'] and form.vars['product_quantity']
    +        # Do something with form.vars['name'] and form.vars['color']
             redirect(URL('accepted'))
         if form.errors:
             # display message error
    @@ -284,30 +335,18 @@ 

    A minimal form example without a database

    In this next basic example we generate a form from a database. Create a new minimal app called form_basic :

    -
    # in form_basic/__init__.py
    -import os
    -from py4web import action, Field, DAL
    -from py4web.utils.form import Form, FormStyleDefault
    -from pydal.validators import IS_NOT_EMPTY, IS_IN_SET
    -
    -# database definition
    -DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases')
    -if not os.path.isdir(DB_FOLDER):
    -    os.mkdir(DB_FOLDER)
    -db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER)
    -db.define_table(
    -    'person',
    -    Field('superhero', requires=IS_NOT_EMPTY()),
    -    Field('realname'),
    -    Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])),
    -)
    +
    # in controllers.py
    +from py4web impot action, redirect, URL, Field
    +from py4web.utils.form import Form
    +from pydal.validators import *
    +from .common import db
     
     # controllers definition
     @action("index", method=["GET", "POST"])
     @action.uses("form_basic.html", db)
     def index(id=None):
    -    form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault)
    -    rows = db(db.person).select()
    +    form = Form(db.thing, id, deletable=False, formstyle=FormStyleDefault)
    +    rows = db(db.thing).select()
         return dict(form=form, rows=rows)
     
    @@ -318,7 +357,9 @@

    Basic form exampleForm validation paragraph.

    You will also need a template file templates/form_basic.html that contains, for example, the following code:

    -
    <h2 class="title">Form Basic example: Superhero Identity</h2>
    +
    [[extend "layout.html"]]
    +
    +<h2 class="title">Form Basic example: My Things</h2>
     
     [[=form]]
     
    @@ -326,7 +367,7 @@ 

    Basic form example<ul> [[for row in rows:]] -<li>[[=row.id]]: [[=row.superhero]] ([[=row.realname]]) from [[=row.universe]]</li> +<li>[[=row.id]]: [[=row.name]] has color [[=row.color]]</li> [[pass]] </ul>

    @@ -334,12 +375,12 @@

    Basic form examplehttp://127.0.0.1:8000/form_basic : the result is an input form on the top of the page, and the list of all the previously added entries on the bottom:

    -_images/form2.png +images/form2.png###FIXTHIS

    This is a simple example and you cannot change nor delete existing records. But if you’d like to experiment, the database content can be fully seen and changed with the Dashboard app.

    -

    Notice that py4web by default let you choose the value of the universe field using -a dropdown menu:

    -_images/form3.png +

    Notice that py4web by default let you choose the value of the color field using +a dropdown menu.

    +images/form3.png###FIXTHIS

    The basic form usage is quite useful for rapid prototyping of programs, since you don’t need to specify the layout of the form. On the other hand, you cannot change its default behaviour.

    @@ -348,34 +389,22 @@

    File upload fieldyour_app/upload folder will be used (and the folder will also be created if needed). Let’s look at a simple example:

    -
    # in form_upload/__init__.py
    -import os
    -from py4web.core import required_folder
    -from py4web import action, Field, DAL
    +
    # in controllers.py
    +from py4web impot action, redirect, URL, Field
     from py4web.utils.form import Form, FormStyleDefault
    -from pydal.validators import IS_NOT_EMPTY
    -
    -# database definition
    -DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases')
    -if not os.path.isdir(DB_FOLDER):
    -    os.mkdir(DB_FOLDER)
    -db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER)
    -db.define_table(
    -    'person',
    -    Field('superhero', requires=IS_NOT_EMPTY()),
    -    Field('image', "upload", label='Superhero Image', requires=IS_NOT_EMPTY()),
    -)
    +from pydal.validators import *
    +from .common import db
     
     @action("index", method=["GET", "POST"])
     @action.uses("form_upload.html", db)
     def upload(id=None):
    -    form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault)
    -    rows = db(db.person).select()
    +    form = Form(db.thing, id, deletable=False, formstyle=FormStyleDefault)
    +    rows = db(db.thing).select()
         return dict(form=form, rows=rows)
     

    And in templates/form_upload.html :

    -

    @@ -414,31 +444,19 @@

    Standard widgets
    # in form_widgets/__init__.py
    -import os
    -from py4web import action, Field, DAL
    +
    # in controllers.py
    +from py4web impot action, redirect, URL, Field
     from py4web.utils.form import Form, FormStyleDefault, RadioWidget
    -from pydal.validators import IS_NOT_EMPTY, IS_IN_SET
    -
    -# database definition
    -DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases')
    -if not os.path.isdir(DB_FOLDER):
    -    os.mkdir(DB_FOLDER)
    -db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER)
    -db.define_table(
    -    'person',
    -    Field('superhero', requires=IS_NOT_EMPTY()),
    -    Field('realname'),
    -    Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])),
    -)
    +from pydal.validators import *
    +from .common import db
     
     # controllers definition
     @action("index", method=["GET", "POST"])
     @action.uses("form_widgets.html", db)
     def index(id=None):
    -    FormStyleDefault.widgets['universe']=RadioWidget()
    -    form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault)
    -    rows = db(db.person).select()
    +    FormStyleDefault.widgets['color']=RadioWidget()
    +    form = Form(db.thing, formstyle=FormStyleDefault)
    +    rows = db(db.thing).select()
         return dict(form=form, rows=rows)
     
    @@ -446,58 +464,28 @@

    Standard widgetsuniverse field form style with the line:

    +
  • before the form definition, you define the color field form style with the line:

    -
    FormStyleDefault.widgets['universe']=RadioWidget()
    +
    FormStyleDefault.widgets['color']=RadioWidget()
     
  • -

    You will also need a template file templates/form_widgets.html that -contains the following code (as the form_basic.html) :

    -
    <h2 class="title">Form Widget example: Superhero Identity</h2>
    -
    -[[=form]]
    -
    -<h2 class="title">Rows</h2>
    -
    -<ul>
    -[[for row in rows:]]
    -<li>[[=row.id]]: [[=row.superhero]] ([[=row.realname]]) from [[=row.universe]]</li>
    -[[pass]]
    -</ul>
    -
    -

    The result is the same as before, but now we have a radio button widget instead of the dropdown menu!

    -_images/form4.png +images/form4.png###FIXME

    Using widgets in forms is quite easy, and they’ll let you have more control on its pieces.

    Custom widgets

    You can also customize the widgets properties by subclassing the FormStyleDefault class. Let’s have a quick look, improving again our Superhero example:

    -
    #
    -# in form_custom_widgets/__init__.py
    -#
    -import os
    -from py4web import action, Field, DAL
    +
    # in controllers.py
    +from py4web impot action, redirect, URL, Field
     from py4web.utils.form import Form, FormStyleDefault, RadioWidget
    -from pydal.validators import IS_NOT_EMPTY, IS_IN_SET
    -from yatl.helpers import INPUT, DIV
    -
    -# database definition
    -DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases')
    -if not os.path.isdir(DB_FOLDER):
    -    os.mkdir(DB_FOLDER)
    -db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER)
    -db.define_table(
    -    'person',
    -    Field('superhero', requires=IS_NOT_EMPTY()),
    -    Field('realname'),
    -    Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])),
    -)
    +from pydal.validators import *
    +from .common import db
     
     # custom widget class definition
     class MyCustomWidget:
    @@ -521,33 +509,17 @@ 

    Custom widgetsdef index(id=None): MyStyle = FormStyleDefault MyStyle.classes = FormStyleDefault.classes - MyStyle.widgets['superhero']=MyCustomWidget() - MyStyle.widgets['realname']=MyCustomWidget() - MyStyle.widgets['universe']=RadioWidget() + MyStyle.widgets['name']=MyCustomWidget() + MyStyle.widgets['color']=RadioWidget() - form = Form(db.person, id, deletable=False, formstyle=MyStyle) - rows = db(db.person).select() + form = Form(db.thing, id, deletable=False, formstyle=MyStyle) + rows = db(db.thing).select() return dict(form=form, rows=rows)

    -

    You will also need a template file templates/form_custom_widgets.html that -contains the following code (as the form_basic.html) :

    -
    <h2 class="title">Form Custom Widgets example: Superhero Identity</h2>
    -
    -[[=form]]
    -
    -<h2 class="title">Rows</h2>
    -
    -<ul>
    -[[for row in rows:]]
    -<li>[[=row.id]]: [[=row.superhero]]  ([[=row.realname]]) from [[=row.universe]] </li>
    -[[pass]]
    -</ul>
    -
    -

    The result is similar to the previous ones, but now we have a custom input field, with foreground color red and background color black:

    -_images/form5.png +images/form5.png###FIXME

    Even the radio button widget has changed, from red to blue.

    @@ -590,8 +562,6 @@

    Custom forms

    Warning

    @@ -603,6 +573,32 @@

    Custom forms +
    <div class=”select”>

    <input name=”name” value=”form.vars.get(‘name’, ‘’)”/>

    +
    + +

    </div> +<div class=”select”> +[[for color in [‘red’, ‘blue’, ‘green’]:]]

    +
    +

    <label>[[=color]]</label> +<input name=”color” type=”radio” value=”[[=color]]”

    +
    +

    [[if form.vars.get(‘color’) == color]]checked[[pass]]

    +
    +

    />

    +
    +

    [[pass]] +</div> +<input type=”submit” value=”Click me”/> +[[=form.custom.end ]]

    +

    The sidecar parameter

    @@ -1617,7 +1613,7 @@

    Validation functions - v: 1.20240420.2 + v: 1.20240530.2

    Here @action.uses(auth.user) tells py4web that this action requires @@ -616,7 +616,7 @@

    User Impersonation - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-14.html b/apps/_documentation/static/en/chapter-14.html index 77b0be6ab..97d7217d1 100644 --- a/apps/_documentation/static/en/chapter-14.html +++ b/apps/_documentation/static/en/chapter-14.html @@ -4,7 +4,7 @@ - Grid — py4web 1.20240420.2 documentation + Grid — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -652,7 +652,7 @@

    Reference Fields - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-15.html b/apps/_documentation/static/en/chapter-15.html index 3206ad6a2..bc0a01ff6 100644 --- a/apps/_documentation/static/en/chapter-15.html +++ b/apps/_documentation/static/en/chapter-15.html @@ -4,7 +4,7 @@ - From web2py to py4web — py4web 1.20240420.2 documentation + From web2py to py4web — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -490,7 +490,7 @@

    “auth” example - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/en/chapter-16.html b/apps/_documentation/static/en/chapter-16.html index 77c3a436c..c396aa5ab 100644 --- a/apps/_documentation/static/en/chapter-16.html +++ b/apps/_documentation/static/en/chapter-16.html @@ -4,7 +4,7 @@ - Advanced topics and examples — py4web 1.20240420.2 documentation + Advanced topics and examples — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -41,7 +41,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -69,6 +69,8 @@
  • Grid
  • From web2py to py4web
  • Advanced topics and examples
      +
    • The scheduler
    • +
    • Celery
    • py4web and asyncio
    • htmx
      • htmx usage in Form
      • @@ -112,6 +114,73 @@

        Advanced topics and examples

        +
        +

        The scheduler

        +

        Py4web has a built-in scheduler. There is nothing for you to install or configure to make it work.

        +

        Given a task (just a python function), you can schedule async runs of that function. +The runs can be a one-off or periodic. They can have timeout. They can be scheduled to run at a given scheduled time.

        +

        The scheduler works by creating a table task_run and enqueueing runs of the predefined task as table records. +Each task_run references a task and contains the input to be passed to that task. The scheduler will caputure the +task stdout+stderr in a db.task_run.log and the task output in db.task_run.output.

        +

        A py4web thread loops and finds the next task that needs to be executed. For each task it creates a worker process +and assigns the task to the worker process. You can specify how many worker processes should run concurrently. +The worker processes are daemons and they only live for the life of one task run. Each worker process is only +responsible for executing that one task in isolation. The main loop is responsible for assigning tasks and timeouts.

        +

        The system is very robust because the only source of truth is the database and its integrity is guaranteed by +transational safety. Even if py4web is killed, running tasks continue to run unless they complete, fail, or are +explicitely killed.

        +

        Aside for allowing multiple concurrent task runs in execution on one node, +it is also possible to run multiple instances of the scheduler on different computing nodes, +as long as they use the same client/server database for task_run and as long as +they all define the same tasks.

        +

        Here is an example of how to use the scheduler:

        +
        from pydal.tools.scheduler import Scheduler, delta, now
        +from .common import db
        +
        +# create and start the scheduler
        +scheduler = Scheduler(db, sleep_time=1, max_concurrent_runs=1)
        +scheduler.start()
        +
        +# register your tasks
        +scheduler.register_task("hello", lambda **inputs: print("hi!"))
        +scheduler.register_task("slow", lambda: time.sleep(10))
        +scheduler.register_task("periodic", lambda **inputs: print("I am periodic!"))
        +scheduler.register_task("fail", lambda x: 1 / x)
        +
        +# enqueue some task runs:
        +
        +scheduler.enqueue_run(name="hello")
        +scheduler.enqueue_run(name="hello", scheduled_for=now() + delta(10) # start in 10 secs
        +scheduler.enqueue_run(name="slow", timeout=1) # 1 secs
        +scheduler.enqueue_run(name="periodic", period=10) # 10 secs
        +scheduler.enqueue_run(name="fail", inputs={"x": 0})
        +
        +
        +

        Notice that in scaffolding app, the scheduler is created and started in common if +USE_SCHEDULER=True in settings.py.

        +

        You can manage your task runs busing the dashboard or using a Grid(path, db.task_run).

        +

        To prevent database locks (in particular with sqlite) we recommand:

        +
          +
        • Use a different database for the scheduler and everything else

        • +
        • Always db.commit() as soon as possible after any insert/update/delete

        • +
        • wrap your database logic in tasks in a try…except as in

        • +
        +
        def my_task():
        +    try:
        +        # do something
        +        db.commit()
        +    except Exception:
        +        db.rollback()
        +
        +
        +
        +
        +

        Celery

        +

        Yes. You can use Celery instead of the build-in scheduler but it adds complexity and it is less robust. +Yet the build-in schduler is designed for long running tasks and the database can become a bottle neck +if you have hundrands running concurrently. Celery may work better if you have more than 100 concurrent +tasks and/or they are short running tasks.

        +

        py4web and asyncio

        Asyncio is not strictly needed, at least for most of the normal use @@ -758,7 +827,7 @@

        The T object - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/en/genindex.html b/apps/_documentation/static/en/genindex.html index d316470db..9fdaaef38 100644 --- a/apps/_documentation/static/en/genindex.html +++ b/apps/_documentation/static/en/genindex.html @@ -3,7 +3,7 @@ - Index — py4web 1.20240420.2 documentation + Index — py4web 1.20240530.2 documentation @@ -17,7 +17,7 @@ - + @@ -40,7 +40,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -134,7 +134,7 @@

        Index

        - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/en/index.html b/apps/_documentation/static/en/index.html index 131dfec73..ceb190f60 100644 --- a/apps/_documentation/static/en/index.html +++ b/apps/_documentation/static/en/index.html @@ -4,7 +4,7 @@ - py4web: the reference Manual — py4web 1.20240420.2 documentation + py4web: the reference Manual — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -41,7 +41,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -225,6 +225,8 @@

        py4web: the reference ManualAdvanced topics and examples
          +
        • The scheduler
        • +
        • Celery
        • py4web and asyncio
        • htmx
        • utils.js
        • @@ -277,7 +279,7 @@

          Indices and tables - v: 1.20240420.2 + v: 1.20240530.2
          diff --git a/apps/_documentation/static/en/objects.inv b/apps/_documentation/static/en/objects.inv index f518d07db78bac014623507c312d3a6a1089dc1b..d82b3d498ffa7b9e2be60d831d010d6d71862dc8 100644 GIT binary patch delta 7701 zcmV+w9_rz=K+iysK>{^1kwZ~`o*u`>ZqU@ln$@jIs(U(OB4mgxQD}nzjf*7q(|pM8 z&&`)?-l}jRfC3$}54J=w&&fiekX4zLmHPboE)Me|{~CY(tny;@Ar9|Ntn?eTdy7J!z$f%Fk$JqL17~|t! zrkf4Yq}w7&lb%L=&v1l)XaQ&e;I$SBk>|$OFDRq%KawweZ3huGoh(rJF^X52NxTS= zQ}!3c#wJY4t#2HPn3`UkOs;Nk5D2#zRRb|gFn1Vd>$+F@ZERcWu_>z#5ayXRtlUV6l4V@3jIU!DMFT|;iZ2n3TmtroCL0d8Pg1gV&omYAP2pttT-dRLknfp>GkYVa zZx3-A7Kc0%0yG}T>BaSA(Rv*4)JCz99Fo8zb=c%?bw381=+!-8ukMaNHnBK`7U6mw zCF^lKGzVLR+#1HKpFdj|fNr^yH)iXrf?^Xn@H z#wJ-8k0YQgh~SHptFy%?frAHsmp-sf8q;kE(CGskC+fS4^MCo`?)sFi)Vx7Ep07qE z4C%8OV_!&)(AU45h=qYA+;U8pkQ`z!CyS|c2&_@=#BucEL6)s7a$H?6*vwWuW32=7 zI17P1H7k*naXil6qokPotJ{kUXYKR2T#taG7-Huaw`T$@vNRb5B|!o&X4h8&A2|uz z3Ambk%PrXL6@SeWNjQpw5!xbsUIrNjdh`%}F_U}-84RO|fYN|!2NZ>DKc$jH_@t z=qTgR`<^q5L*@cee2v5Aat#%v@otl@j5p%v1eN;@;hFK?NM_W{?1Y3VF7Uha&a#0gOC+#j$nTa3ec&w~WKwYf(s4 zlc=h}ED5){khOna;f*UZU6JVmeD}%6i<2X@n8CkeB3%37Yk;9cP>k7HB_Xwt&DFxZ zz_QSI_r|T9TAciCF`1p%Xuw+hy@l@+XlE5SD2uM&=sjz=vhQAjC_!6+pX*%DjY|E#5S^w79Vq0vN0+=4}jT z@o1sJW$8u>jTRamYDY5}s}P$8>+LL2+Z}wDC|FkyeA&j~vTt2jHHBcBVY-4%`Urz? z`6Wr8W3yUsOj7i%#ow@kS8CD}55m<7gU4Y3_U|71R~4yxh)fJmf&*!A$k#yl;u%3TtY)m}B#LMJo^MyE-e%w^-{G!kX`rB7E`W9ul8OeyqWQ`!b3#{;$Bh z*~0AV$vzZmZKXf9-~mO3BtV3w%a=fZ2x7Vt)`X|=3&VV4Hfi*GAI1BMf<`X9I2JIi zkzDdMN6Zd%?r#^8TH$FE9CV~i9-eopi3W2AbA@pUUJKgQ6sPskEy$wF(_*2*7@(vV z$pTK&2W!hW)cgeVfK7LKh+c*!71z^*krWz-nRZeIOVFC_hF{fJYD!W;H6;^&V3jUA zCTjJ|V_2vthw1*^v$_AT3iY-V#c!zk1S1n;{W&a{mWC${c$oMU-9zfc^P^MeNnSwb zR@Qfp+Xdyeg1_s8^Q){Dk47Db`Qv>W!rI<_`$H$@2gXdnpDcI)t8iP>^u80ty{S%J z*SoRNDgNhr!|W>VJ}dF}XRf5P#`Jut8G4 zP8JtxVZe;xc)SRcbs4TrP}!R>N68-q?o-pAve8;HAjKS=sVVsEnUe zFyu8gonu92I{#c<8Tw8d88c^K@w>w-p@~csQVLJzmyne&W zDKN>)FZbz-b?f>UGB%@F0J;X4?vn(|sQA;5@}lqCnjfuY&?5MDl;E59eT7~AH=YAZW!Km%T3y+p;1w`$C?%9^dea8RBvP;}qtfFf+qlSv}n9f6e?tfmIWtg{dmM%OUY z8r8A83>v^$`|6K8zJmN0B;HOo(#<`ge6g=Ln7 z@O@bny|b$u3{1=rZ6U%vVWN+G)zUB1xZI57wX)L&)G|F(ZT}bE{z!MwQd&Q-33g<- zeD+NC!bFmP(;CcjjEYSNi@f~@@2X*-=bBJ-AaF+ z7~u1r4JI`R&;mH#Cvn8^5KDLi z=?*c8HiT8q($unQ`NG}rCQH4Cg+(`WYRLg+0?D?O56I@4Rd0fokR05a@_^IY?s&a5 z)*KQ>R$CQD1KBoCcevMxf!|fS{9>|y-=-^n@W_W<`3i_(UIuCb9ydsjne>LfYbjhW z;}jOVufs2)T8GdewNBGDF8p9!Y!VoIy$i|Cb}*j?It_H1$tW?H$y!Z2n^x-2CMTf& zjMYy-{RyjYwU{?}!({giPK)^tJm*8&*F<9&zSW`|5}4HJTl&lUGAYVKbPA%W=aw#i z23W)b1Cd!I;pn2I?M)hk?(mbxO4c~oS`r5j`|4QL@sO(O%$3am9v;saLPJU3sRphr zO!9EdBBKK7I_S8YELiQ5a1$*tu1RJiA9n3TT%#pr@na$Q1qg2NN?=}K85q%npnIni zzHDDPvCmT|z@oW>>HIL8ZbqMY=uv-vnz;!$+SpIDEb{4QSx(BaNOGf4Z!azC%s3R8 z`yT8`B^q$i0%YNR(I*%^LkSO!@(0*5-fgX5Cw+v$gDGUEj#HMsRRBaD99NK5rxkpb zJ_qa#jb2EzGgKEpZ4(4_2aAG;o<&TPn{XUMtZ=8jlmVSO<>N%++6~$O6t7NyAEEeZ zn;__`3-OI*CUn4+7chx>&>C{R1{6EB0D!*W!@AGXFD9wh8{V!&lxCE!p-y|~f^q)q zt7^lH_UieW;{**eX0$Ei5qloA@9%)R0X*#|WrbrmR!B)r__PTQMtIn-WEYF#fcY|` zqlbewm4b>^^0WqHj`ogIkNP@)8AC7&N+8`^S8J1)j3aYd_^hxt%i!>+h-ZBvs(Oj z$Gmh`457P8;X#C6qkhI>0VRzL1}R?gmZLiw#OHuKO_MW8BC8qgTuiKgQZ$akIj$CR z)j`&tOo4n>L>)t?t&LrCe9$(|zf>??jk(%MOXYQY26$DZrf*Ibkp_ZMV8 zHK4&GOnUID;PF6SH+jg?XMEpk;-A_C0S$drfXS}k5L3qgsJ(#i3@&4x7gF#y_}Lw0 z_9u1W(vzgh9NkE+;IkQj#-O|=d7Q{dzDa>LvBf&@s&ulFe3OFSq{pJzdbVX>LC-91 z=0RnbWShQblGrAGpygy{9>6)lZGp=$DZ`k7#%l%6Sq#M^JI=cjSSz)E5Yc*`>iHfT z2)STUB&oL#ar*2jic=x9L!5We05_O$I&$bMU;}b=))9CtB;dq0{=?Op3%oQr< zI_<_3$FbJQvha3WsB0|eBh_KMnyExNrxFbhlsbxc!v)ownIs6;i2F!9z%hE_WhKt9@G4$vUMG4Ue&?n z;rHF0n1;Cqf6rwzG9Kfl5I}Z0E#R+?WM;1gSZ!=Lhu^Nr@NBS?{O=kph{NByNWsC)DaA9Rj7+5U6sbV3BRzJrK~HgNm|RQ8LCM^II!o8(>2^>FC}P8 z$U~%`_Vx0ADN4xIq@NCQ*+mpo8y~bRPGdX{yYVg$s;v}(X$!mTBMipIJYH2Cd9X?E zF|4yPPbN;c0~3?1vRGc%>o?Ys;6BQNH;*2-DIew!|mSgwEcpY zxd1P*-WoaJ8+4p8=1yTOZ-ZbIVYpp{FPq?Clam{NzloMvnx{AepvMh#DPwTe;BLl6p{#h7M{(IEs3_^sOnU!Y{{aSTza1??w1qh8 zMU5!f?7U$J7>_#)JS5}{V-iCvoAPxPArE6u&tlaWB57q->N5(*`MKh`;4+gH@E%A&|jm%K+Yp zuz>4HMRLs78pIFb(%h%%m+{OFQKvqYiw$lY%Nolp@^xO0Z3QVsygQ!xaFLvN)j6Kj zbq`%Yr){W$we0>5hC=B;4NA+_vbt`;1B#k|95g>sprk!LU3bs~X%;Sh$EaSZYmy42 zZjXO`(_0Pbo9Yq$e-szmmm1f!sss|=Cgs7l)2m#buWw)>TDS78bPat?^sNM}8olTr zxxiy}mGE^FEM#NTXqc@gecgfw&8!ZvNxV?B8y16Wj9P++w%BSTg!WwfsX_C`=YHIO zOfCbi_0)R;uyXrutYEOsOlH28Q63e>6KMrlT{x(%N<7OIP8VpdT4Yay|1`xeSw`t_ z7*TeQ`OjOhytX7r5 zhdT)GO0`;eeXP#B8iG-qLv}}KCfh)Na>i21NO-p=FENX2Cq8Qv1l5+1$9~MLAVP|Na2u(0 zU)qj6t|o#S1?9w~Iy+f7f^7=7XmfQq8zvveXpwAE1Zh=t(N;R?;3ozWhD$W;X|%Yi zK!ek_M;T;kS@>33(4{05?AK^JxXhbI65fI0+z7XGf%Y|eh{mM!S_(;=cl#l_K`|Sn zD9HI7f8%U{;!;_IZ#Lta2MnZt#MYcC8>bA^lqzoJCd}G<{Cth)usMH^6Sc_N{R__a z=&!eJn`J?@6cGf?yU9RF{7}s^JP_l^Zwi_?9^HbQ<5#mT%78s}K92cst90{kz7l;- zT!XYY^9(<}zHHFh)15Y-aM-`EGuvaM4mls7?bI11p87pQYO%<(1_+>Cqr10A-AL^j1DB(BMHnc?BEM1z_KvbzgQj?yy z;6eTv@;g49AZYuQrL~iux8Olnb;NHdvIsZ&m}bSYEW8oYxfKlZh|D0JzvTL0o?1gP z-7rp9xN0Js_fiJF~n zfK^8a7aOmrD5?DmCG2B*_3?2bE4*le1KJp%emB`B8nWm%!b1B3^gL^bg{8TvE(V3I z((+IygAR$U^C|Lwx{`N=UQX>L$LjS6EEXXzh5U`Q(dG;>@{-oA*`kvwIP?_!-ck0& z-WheI#5&qvOGAI;jyGNWw1SYW8zPoVLP5+_u1)rdhG%f(q{4Mp8W|@wIPqZ($%ulc`4=Pk(WR_o40gkwT=M@slP!mEELU@}z!2w(6 z&HeIbttY0D1$S60uoQEFrImN5jM?R|WsN}-1K!TKDo)fAyS2o7n1i7W(#!I8&y(~t zD2Vj|oXrD9Ac;4g>S>*TDKSygJ6F7^HI)+N8`A|6w`ho4ww`F0!rujwe9h9xc~*ln zAEti}z0z-gYU6~;`PJU%vkFXPQ9@sh?o5_%^yYbkf><{p_&9cn;~&f@?v_ZzNd&(L z0a1P(zU5jIzt->fr~1v>;L~8Fi47qO)@zK_3E<}zp0XLuq#dG0>1c>M2QL(3`YN@A579eG}5U|)M35w?w6B@8rTeWY8m%PuZW|(fl7C?B)gv|&(b<5aes#VXok5E+M8rde<%iky(lWfci(OYhBmKuV%8J6uz){MN-C7xLt@4x4 zbXxa;RvS1<0iE!3Q#<@s715KkQO^?Z+*G=l{nuL~yvE2$Aqo;>XW zqmw_Hh}?PFRHkS_t-+^#gs2VO>(M$IrS++?xEqz?0mOJb3t=>2>dpMrNrg&qBQitt z%%!4i9gNWmEnW&nS$tjj%&UT68$$W3OF4lhvFiicLHV!(w}J3xGdv2aR?y-jTOX>O z79RlH*V;kY)b=eMZ&mhm`VciLmzr9t+^Uezw3}?Sb^+^ht3xf|y88JrIqJuQ=%e+a PaGn3>COG&%_Pr%2f7#2^ delta 7674 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 - Search — py4web 1.20240420.2 documentation + Search — py4web 1.20240530.2 documentation @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
          - 1.20240420.2 + 1.20240530.2
          @@ -141,7 +141,7 @@ - v: 1.20240420.2 + v: 1.20240530.2
          diff --git a/apps/_documentation/static/en/searchindex.js b/apps/_documentation/static/en/searchindex.js index b48a81a99..e9c4b4829 100644 --- a/apps/_documentation/static/en/searchindex.js +++ b/apps/_documentation/static/en/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A": [[9, "a"]], "A minimal form example without a database": [[11, "a-minimal-form-example-without-a-database"]], "A modern python workplace": [[1, "a-modern-python-workplace"]], "ANY_OF": [[11, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adding attributes to fields and tables": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced features": [[6, "advanced-features"]], "Advanced form design": [[11, "advanced-form-design"]], "Advanced topics and examples": [[15, "advanced-topics-and-examples"]], "Auth Plugins": [[12, "auth-plugins"]], "Auth UI": [[12, "auth-ui"]], "Authentication and authorization": [[12, "authentication-and-authorization"]], "Authentication using Auth": [[12, "authentication-using-auth"]], "Authorization using Tags": [[12, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[15, "autocomplete-widget-using-htmx"]], "BEAUTIFY": [[9, "beautify"]], "BODY": [[9, "body"]], "Basic form example": [[11, "basic-form-example"]], "Basic grid example": [[13, "basic-grid-example"]], "Basic syntax": [[8, "basic-syntax"]], "Built-in helpers": [[9, "built-in-helpers"]], "CAT": [[9, "cat"]], "CLEANUP": [[11, "cleanup"]], "CRUD settings": [[13, "crud-settings"]], "CRYPT": [[11, "crypt"]], "CSV (all tables at once)": [[6, "csv-all-tables-at-once"]], "CSV (one Table at a time)": [[6, "csv-one-table-at-a-time"]], "CSV and remote database synchronization": [[6, "csv-and-remote-database-synchronization"]], "Caching and Memoize": [[5, "caching-and-memoize"]], "Caching selects": [[6, "caching-selects"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Checkbox validation": [[11, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combining rows": [[6, "combining-rows"]], "Command line options": [[2, "command-line-options"]], "Common filters": [[6, "common-filters"]], "Complexity and security validators": [[11, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Computed fields": [[6, "computed-fields"]], "Connection failures (attempts parameter)": [[6, "connection-failures-attempts-parameter"]], "Connection pooling": [[6, "connection-pooling"]], "Connection strings (the uri parameter)": [[6, "connection-strings-the-uri-parameter"]], "Contents:": [[16, null]], "Convenience Decorators": [[5, "convenience-decorators"]], "Copy data from one db into another": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom Action Buttons": [[13, "custom-action-buttons"]], "Custom Field types": [[6, "custom-field-types"]], "Custom columns": [[13, "custom-columns"]], "Custom fixtures": [[5, "custom-fixtures"]], "Custom forms": [[11, "custom-forms"]], "Custom helpers": [[9, "custom-helpers"]], "Custom widgets": [[11, "custom-widgets"]], "Customizing style": [[13, "customizing-style"]], "DAL constructor": [[6, "dal-constructor"]], "DAL introduction": [[6, "dal-introduction"]], "DAL signature": [[6, "dal-signature"]], "DIV": [[9, "div"]], "Data representation": [[6, "data-representation"]], "Database cascades": [[6, "database-cascades"]], "Database folder location": [[6, "database-folder-location"]], "Database quoting and case settings": [[6, "database-quoting-and-case-settings"]], "Database validators": [[11, "database-validators"]], "Date and time validators": [[11, "date-and-time-validators"]], "Debugging py4web with PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Debugging py4web with VScode": [[1, "debugging-py4web-with-vscode"]], "Default migration settings": [[6, "default-migration-settings"]], "Default page layout": [[8, "default-page-layout"]], "Default values with coalesce and coalesce_zero": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Dictionaries and tuples with IS_IN_SET": [[11, "dictionaries-and-tuples-with-is-in-set"]], "Distributed transaction": [[6, "distributed-transaction"]], "Dynamic Web Pages": [[4, "dynamic-web-pages"]], "EM": [[9, "em"]], "Experiment with the py4web shell": [[6, "experiment-with-the-py4web-shell"]], "Exporting and importing data": [[6, "exporting-and-importing-data"]], "Expressions": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "FORM": [[9, "form"]], "Fetching a Row": [[6, "fetching-a-row"]], "Field constructor": [[6, "field-constructor"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[11, "file-upload-field"]], "First run": [[2, "first-run"]], "Fixing broken migrations": [[6, "fixing-broken-migrations"]], "Fixtures": [[5, "fixtures"]], "Form structure manipulation": [[11, "form-structure-manipulation"]], "Form validation": [[11, "form-validation"]], "Forms": [[11, "forms"]], "From scratch": [[4, "from-scratch"]], "From web2py to py4web": [[14, "from-web2py-to-py4web"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Gotchas": [[6, "gotchas"]], "Grid": [[13, "grid"]], "Grouping and counting": [[6, "grouping-and-counting"]], "H1, H2, H3, H4, H5, H6": [[9, "h1-h2-h3-h4-h5-h6"]], "HEAD": [[9, "head"]], "HTML": [[9, "html"]], "HTML and XML (one Table at a time)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Help, resources and hints": [[1, "help-resources-and-hints"]], "Helpers overview": [[9, "helpers-overview"]], "Hints and tips": [[1, "hints-and-tips"]], "How to contribute": [[1, "how-to-contribute"]], "I": [[9, "i"]], "IMG": [[9, "img"]], "INPUT": [[9, "input"]], "IS_ALPHANUMERIC": [[11, "is-alphanumeric"]], "IS_DATE": [[11, "is-date"]], "IS_DATETIME": [[11, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[11, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[11, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[11, "is-decimal-in-range"]], "IS_EMAIL": [[11, "is-email"]], "IS_EMPTY_OR": [[11, "is-empty-or"]], "IS_EQUAL_TO": [[11, "is-equal-to"]], "IS_EXPR": [[11, "is-expr"]], "IS_FILE": [[11, "is-file"]], "IS_FLOAT_IN_RANGE": [[11, "is-float-in-range"]], "IS_IMAGE": [[11, "is-image"]], "IS_INT_IN_RANGE": [[11, "is-int-in-range"]], "IS_IN_DB": [[11, "is-in-db"]], "IS_IN_DB and Tagging": [[11, "is-in-db-and-tagging"]], "IS_IN_SET": [[11, "is-in-set"]], "IS_IN_SET and Tagging": [[11, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[11, "is-ipaddress"]], "IS_IPV4": [[11, "is-ipv4"]], "IS_IPV6": [[11, "is-ipv6"]], "IS_JSON": [[11, "is-json"]], "IS_LENGTH": [[11, "is-length"]], "IS_LIST_OF": [[11, "is-list-of"]], "IS_LIST_OF_EMAILS": [[11, "is-list-of-emails"]], "IS_LOWER": [[11, "is-lower"]], "IS_MATCH": [[11, "is-match"]], "IS_NOT_EMPTY": [[11, "is-not-empty"]], "IS_NOT_IN_DB": [[11, "is-not-in-db"]], "IS_NULL_OR": [[11, "is-null-or"]], "IS_SLUG": [[11, "is-slug"]], "IS_STRONG": [[11, "is-strong"]], "IS_TIME": [[11, "is-time"]], "IS_UPLOAD_FILENAME": [[11, "is-upload-filename"]], "IS_UPPER": [[11, "is-upper"]], "IS_URL": [[11, "is-url"]], "Indexes": [[6, "indexes"]], "Indices and tables": [[16, "indices-and-tables"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserting and updating from a dictionary": [[6, "inserting-and-updating-from-a-dictionary"]], "Installation and Startup": [[2, "installation-and-startup"]], "Installing from binaries": [[2, "installing-from-binaries"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Installing from source (globally)": [[2, "installing-from-source-globally"]], "Installing from source (locally)": [[2, "installing-from-source-locally"]], "Internationalization": [[10, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[13, "key-features"]], "LABEL": [[9, "label"]], "LDAP": [[12, "ldap"]], "LI": [[9, "li"]], "Lazy Tables": [[6, "lazy-tables"]], "Left outer join": [[6, "left-outer-join"]], "Legacy databases and keyed tables": [[6, "legacy-databases-and-keyed-tables"]], "Logical operators": [[6, "logical-operators"]], "Login into the Dashboard": [[3, "login-into-the-dashboard"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Making a secure connection": [[6, "making-a-secure-connection"]], "Many to many relation": [[6, "many-to-many-relation"]], "Migration control summary": [[6, "migration-control-summary"]], "Migrations": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Model-less applications": [[6, "model-less-applications"]], "More on uploads": [[6, "more-on-uploads"]], "Multiple Tags objects": [[12, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "New style virtual fields (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Note on new DAL and adapters": [[6, "note-on-new-dal-and-adapters"]], "OAuth2 with Discord": [[12, "oauth2-with-discord"]], "OAuth2 with Facebook": [[12, "oauth2-with-facebook"]], "OAuth2 with Google": [[12, "oauth2-with-google"]], "OL": [[9, "ol"]], "OPTION": [[9, "option"]], "Old style virtual fields": [[6, "old-style-virtual-fields"]], "On return values": [[4, "on-return-values"]], "One to many relation": [[6, "one-to-many-relation"]], "Oracle": [[6, "oracle"]], "Other DAL constructor parameters": [[6, "other-dal-constructor-parameters"]], "Other operators": [[6, "other-operators"]], "Other validators": [[11, "other-validators"]], "P": [[9, "p"]], "PAM": [[12, "pam"]], "PRE": [[9, "pre"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Pluralize": [[10, "pluralize"]], "Prerequisites": [[1, "prerequisites"]], "Query, Set, Rows": [[6, "query-set-rows"]], "Range, set and equality validators": [[11, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Record versioning": [[6, "record-versioning"]], "Recursive selects": [[6, "recursive-selects"]], "Reference Fields": [[13, "reference-fields"]], "Rendering rows using represent": [[6, "rendering-rows-using-represent"]], "Replicated databases": [[6, "replicated-databases"]], "Reserved keywords": [[6, "reserved-keywords"]], "Resources": [[1, "resources"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Routes": [[4, "routes"]], "Run-time field and table modification": [[6, "run-time-field-and-table-modification"]], "SCRIPT": [[9, "script"]], "SELECT": [[9, "select"]], "SPAN": [[9, "span"]], "SQLite": [[6, "sqlite"]], "STYLE": [[9, "style"]], "Sample Action Button Class": [[13, "sample-action-button-class"]], "Searching and filtering": [[13, "searching-and-filtering"]], "Self-Reference and aliases": [[6, "self-reference-and-aliases"]], "Server-side DOM": [[9, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Setup procedures": [[2, "setup-procedures"]], "Sharing sessions": [[5, "sharing-sessions"]], "Shortcuts": [[6, "shortcuts"]], "Simple conversion examples": [[14, "simple-conversion-examples"]], "Sorted options": [[11, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[11, "special-type-validators"]], "Standard widgets": [[11, "standard-widgets"]], "Static web pages": [[4, "static-web-pages"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Supported platforms and prerequisites": [[2, "supported-platforms-and-prerequisites"]], "TABLE, TR, TD": [[9, "table-tr-td"]], "TAG": [[9, "tag"]], "TBODY": [[9, "tbody"]], "TEXTAREA": [[9, "textarea"]], "TH": [[9, "th"]], "THEAD": [[9, "thead"]], "TITLE": [[9, "title"]], "TT": [[9, "tt"]], "Table constructor": [[6, "table-constructor"]], "Table inheritance": [[6, "table-inheritance"]], "Table methods": [[6, "table-methods"]], "Tagging records": [[6, "tagging-records"]], "Tags and Permissions": [[12, "tags-and-permissions"]], "Template Functions": [[8, "template-functions"]], "Templates": [[4, "templates"]], "Text format validators": [[11, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL fixture": [[5, "the-dal-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Dashboard": [[3, "the-dashboard"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Flash fixture": [[5, "the-flash-fixture"]], "The Form constructor": [[11, "the-form-constructor"]], "The Google group": [[1, "the-google-group"]], "The Grid object": [[13, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[15, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[15, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The main Web page": [[3, "the-main-web-page"]], "The request object": [[4, "the-request-object"]], "The sidecar parameter": [[11, "the-sidecar-parameter"]], "The sources on GitHub": [[1, "the-sources-on-github"]], "This manual": [[1, "this-manual"]], "Timing queries": [[6, "timing-queries"]], "Tutorials and video": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[12, "two-factor-authentication"]], "UL": [[9, "ul"]], "URL": [[9, "url"]], "Understanding the design": [[2, "understanding-the-design"]], "Update the translation files": [[10, "update-the-translation-files"]], "Upgrading": [[2, "upgrading"]], "User Impersonation": [[12, "user-impersonation"]], "Using Auth inside actions": [[12, "using-auth-inside-actions"]], "Using DAL without define tables": [[6, "using-dal-without-define-tables"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[9, "using-inject"]], "Using an iterator-based select for lower memory use": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "Using callable parameters": [[13, "using-callable-parameters"]], "Using templates": [[13, "using-templates"]], "Using the DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Validation functions": [[11, "validation-functions"]], "Virtual fields": [[6, "virtual-fields"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "What is py4web?": [[0, "what-is-py4web"]], "Widgets": [[11, "widgets"]], "XML": [[9, "xml"]], "YATL Template Language": [[8, "yatl-template-language"]], "YATL helpers": [[9, "yatl-helpers"]], "_lastsql": [[6, "lastsql"]], "as_dict and as_list": [[6, "as-dict-and-as-list"]], "belongs": [[6, "belongs"]], "block and super": [[8, "block-and-super"]], "cache, cacheable": [[6, "cache-cacheable"]], "call command option": [[2, "call-command-option"]], "callbacks on record insert, delete and update": [[6, "callbacks-on-record-insert-delete-and-update"]], "case": [[6, "case"]], "children": [[9, "children"]], "commit and rollback": [[6, "commit-and-rollback"]], "count, isempty, delete, update": [[6, "count-isempty-delete-update"]], "def...return": [[8, "def-return"]], "define_table signature": [[6, "define-table-signature"]], "distinct": [[6, "distinct"]], "drop": [[6, "drop"]], "executesql": [[6, "executesql"]], "extend and include": [[8, "extend-and-include"]], "filter_in and filter_out": [[6, "filter-in-and-filter-out"]], "find": [[9, "find"]], "find, exclude, sort": [[6, "find-exclude-sort"]], "first and last": [[6, "first-and-last"]], "for...in": [[8, "for-in"]], "format: Record representation": [[6, "format-record-representation"]], "groupby, having": [[6, "groupby-having"]], "htmx": [[15, "htmx"]], "htmx usage in Form": [[15, "htmx-usage-in-form"]], "htmx usage in Grid": [[15, "htmx-usage-in-grid"]], "id: Notes about the primary key": [[6, "id-notes-about-the-primary-key"]], "if...elif...else": [[8, "if-elif-else"]], "insert": [[6, "insert"]], "join, left": [[6, "join-left"]], "like, ilike, regexp, startswith, endswith, contains, upper, lower": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "limitby": [[6, "limitby"]], "list: and contains": [[6, "list-type-and-contains"]], "migrate, fake_migrate": [[6, "migrate-fake-migrate"]], "new_app command option": [[2, "new-app-command-option"]], "on_define": [[6, "on-define"]], "orderby": [[6, "orderby"]], "orderby, groupby, limitby, distinct, having, orderby_on_limitby, join, left, cache": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "plural and singular": [[6, "plural-and-singular"]], "polymodel": [[6, "polymodel"]], "primarykey: Support for legacy tables": [[6, "primarykey-support-for-legacy-tables"]], "py4web and asyncio": [[15, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: the reference Manual": [[16, "py4web-the-reference-manual"]], "redefine": [[6, "redefine"]], "rname: Real name": [[6, "rname-real-name"]], "run command option": [[2, "run-command-option"]], "select command": [[6, "select-command"]], "sequence_name": [[6, "sequence-name"]], "set_password command option": [[2, "set-password-command-option"]], "setup command option": [[2, "setup-command-option"]], "shell command option": [[2, "shell-command-option"]], "string.format": [[15, "string-format"]], "sum, avg, min, max and len": [[6, "sum-avg-min-max-and-len"]], "table_class": [[6, "table-class"]], "trigger_name": [[6, "trigger-name"]], "try...except...else...finally": [[8, "try-except-else-finally"]], "two_factor_required": [[12, "two-factor-required"]], "two_factor_send": [[12, "two-factor-send"]], "two_factor_tries": [[12, "two-factor-tries"]], "update_or_insert": [[6, "update-or-insert"]], "update_record": [[6, "update-record"]], "utils.js": [[15, "utils-js"]], "validate_and_insert, validate_and_update": [[6, "validate-and-insert-validate-and-update"]], "version command option": [[2, "version-command-option"]], "while": [[8, "while"]], "year, month, day, hour, minutes, seconds": [[6, "year-month-day-hour-minutes-seconds"]], "\u201cAccessing OS files\u201d example": [[14, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[14, "form-and-flash-example"]], "\u201cHello world\u201d example": [[14, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[14, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[14, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[14, "returning-args-example"]], "\u201cReturning variables\u201d example": [[14, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[14, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[14, "view-example"]], "\u201cauth\u201d example": [[14, "auth-example"]], "\u201cgrid\u201d example": [[14, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "0": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "00": 7, "01": 7, "02": [6, 11], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "06": 11, "08": 11, "0x4e86": 11, "0x7fa533ff7640": 9, "1": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15], "10": [2, 6, 7, 8, 9, 10, 11, 12, 15], "100": [2, 6, 7, 8, 11], "1000": [5, 6, 11, 15], "1000m": 15, "100px": 15, "1024": 11, "1048576": 11, "10px": 13, "11": [6, 11], "111111": 15, "11211": 5, "12": 11, "120": 6, "123": [9, 11], "123218": 7, "123456": 11, "125": 6, "127": [2, 3, 5, 11, 13], "13": [5, 6, 11], "132635": 7, "14": [8, 11, 13], "15": [6, 11, 12, 13], "16": 11, "168": 11, "169": 11, "16px": 8, "172": [6, 11], "174": 6, "178974": 7, "19": [6, 7, 11], "192": [6, 11], "1963": 11, "198": 6, "199": 11, "19t05": 7, "1e100": 6, "1kb": 11, "1l": 6, "1mb": 11, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "20": [2, 7, 10, 11], "200": [7, 11, 14, 15], "2001": 11, "2002": 11, "2005": 6, "2007": 0, "2008": 11, "2009": 11, "200m": 15, "200x200": 11, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 12, "227": 6, "239": 6, "2396": 11, "24": 11, "254": 11, "255": 11, "256": 6, "2616": 11, "28": 11, "2em": 15, "2px": 15, "3": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "30": [2, 6, 8, 11], "301": 14, "309903": 7, "31": [6, 7, 11], "32": [6, 11], "322494": 7, "32768": 6, "33": [6, 11], "34": 7, "3490": 11, "3492": 11, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 15, "4": [2, 5, 6, 7, 8, 11, 13], "40": [2, 9, 15], "400": [5, 14], "404": [5, 11, 12], "405515": 7, "43": 6, "45": [8, 11], "451907": 7, "453020": 7, "456": 11, "466030": 7, "4e": 11, "5": [5, 6, 7, 8, 10, 11, 12, 13, 15], "50": [2, 7], "500": 15, "500m": 15, "512": 6, "53": 11, "54": 8, "559918": 7, "58": 8, "59": 11, "6": [5, 6, 7, 11, 12, 14], "60": [5, 6], "63": [6, 11], "6379": 5, "64": [6, 8, 15], "65": 6, "6to4": 11, "7": [2, 7, 8, 11, 14], "70": 7, "74": 6, "75": 7, "8": [2, 6, 7, 11], "80": [7, 11], "8000": [2, 3, 4, 11, 13], "86": 11, "8601": 7, "8em": [8, 15], "9": [6, 7, 11, 13, 14], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "AND": 6, "AS": 6, "And": [1, 4, 5, 6, 11, 12, 13, 15], "As": [4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "At": [6, 8], "Be": [5, 6, 8], "But": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15], "By": [2, 4, 5, 6, 11, 12, 14], "For": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15], "IF": 6, "IN": 6, "INTO": 6, "IT": 10, "If": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "In": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15], "Its": [0, 2, 6, 11, 13], "NO": 6, "NOT": [6, 11, 12], "No": [2, 6], "Not": 6, "ON": [6, 11], "OR": [6, 9, 11, 13], "Of": 8, "On": [2, 6, 11, 12, 15], "One": [2, 4, 11, 12], "Or": 11, "That": [4, 6, 14], "The": [0, 2, 8, 9, 10, 12, 14, 16], "Their": [5, 6, 14], "Then": [4, 5, 6, 9, 11, 12, 13, 15], "There": [1, 2, 5, 6, 8, 12, 13, 15], "These": [0, 5, 6, 9, 11, 13], "To": [2, 4, 6, 8, 9, 10, 11, 12, 13], "With": [2, 6, 11, 12, 15], "_": [2, 11, 15], "__": 4, "__file__": [5, 7, 11, 13], "__init__": [2, 4, 5, 6, 7, 11, 13, 14, 15], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 9], "_action": 9, "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_upd": 6, "_alt": 9, "_and": 11, "_autocomplet": 15, "_autocomplete_search_field": 15, "_before_": 6, "_before_delet": 6, "_before_insert": 6, "_before_upd": 6, "_bgcolor": 9, "_c": 9, "_check": 9, "_class": [5, 9, 11, 15], "_col": 9, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_data": 9, "_db": 6, "_dbname": 6, "_default": [2, 4], "_delet": 6, "_disabl": 9, "_document": [1, 3], "_enable_record_vers": 6, "_extra": 6, "_format": 6, "_href": [5, 8, 9, 11, 13], "_hx": 15, "_id": [6, 9, 11, 15], "_insert": 6, "_listifi": 6, "_method": 9, "_name": [6, 9, 11, 15], "_next_url": 12, "_nonreserv": 6, "_onclick": 11, "_placehold": [11, 15], "_row": 9, "_scaffold": [5, 8, 9, 11, 12, 13, 14, 16], "_search": 15, "_select": [6, 9], "_sesson": 5, "_src": 9, "_style": [11, 15], "_tabl": [6, 11, 15], "_tablenam": 6, "_tag": 12, "_time": 6, "_titl": [11, 15], "_type": [6, 9, 11, 15], "_u": 9, "_updat": 6, "_uri": 6, "_valu": [9, 11, 15], "_xmln": 9, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaaa": 8, "ab": [9, 11], "abbrevi": 11, "abc": [9, 11], "abil": 14, "abl": [1, 2, 5, 6, 11], "abort": [4, 6], "about": [0, 7, 12, 13, 14, 15, 16], "abov": [4, 5, 6, 7, 8, 11, 12, 13], "abracadabra": 2, "absent": 2, "absolut": [2, 6, 14], "abspath": 4, "abstract": [5, 14, 16], "accdesc": 6, "accept": [1, 2, 4, 5, 6, 9, 10, 11, 14, 15], "access": [0, 2, 4, 5, 6, 9, 11, 12, 15], "accnum": 6, "accomplish": [5, 6, 12, 14], "accord": [6, 8], "accordingli": 8, "account": [2, 6], "acctyp": 6, "achiev": [5, 6, 14], "acknowledg": 16, "acquir": 6, "across": [6, 8], "act": [6, 9, 11], "action": [4, 5, 6, 9, 11, 14, 15, 16], "action_button": 13, "action_token": [5, 12], "activ": [2, 6, 12], "actual": [2, 5, 6, 8, 13], "ad": [0, 2, 5, 10, 11, 12, 13, 15], "adapt": [12, 15], "adapter_arg": 6, "add": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "addit": [2, 4, 5, 6, 7, 8, 11, 13], "addition": 13, "additional_class": 13, "additional_styl": 13, "address": [2, 6, 11, 12], "admin": [0, 6, 14], "administr": 2, "advanc": [2, 12, 13, 16], "advantag": [2, 6, 8, 15], "advis": [6, 13], "affect": 6, "after": [2, 3, 5, 6, 8, 11, 12, 13], "after_connect": 6, "after_delet": 6, "after_insert": 6, "after_upd": 6, "aftermath": 6, "ag": 6, "again": [2, 3, 4, 5, 6, 11, 13, 15], "against": [6, 7, 9, 11, 13], "aggreg": 6, "agnost": 4, "aid": 6, "aim": 0, "ajax": [8, 13, 15], "aka": 1, "alert": [5, 8, 9, 11, 14], "alex": 6, "alfaro": [0, 1], "alg": 11, "algorithm": [5, 11], "alia": [6, 11], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "alloc": 11, "allow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "allowed_act": 12, "allowed_attribut": 9, "allowed_overrid": 11, "allowed_pattern": 7, "allowed_schem": 11, "almost": 5, "along": [2, 4, 9, 11, 15], "alphabet": 11, "alphanumer": 11, "alreadi": [2, 3, 4, 5, 6, 9, 11, 12, 13], "also": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "alt": 9, "alter": 6, "altern": [2, 5, 6, 8, 11, 15], "although": [2, 6, 8, 11], "alwai": [0, 2, 4, 5, 6, 8, 11, 15], "am": 11, "amazon": 6, "ambigu": [4, 6], "among": [6, 11], "amount": 6, "an": [0, 1, 2, 3, 5, 8, 9, 11, 12, 13, 14, 15, 16], "analogi": 14, "ancestor": 9, "anchor": 15, "andrew": 1, "angl": 8, "angular": [0, 15], "ani": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "annoi": 2, "anonym": [6, 8, 11], "anoth": [4, 5, 8, 10, 11, 12], "anotherpath": 5, "ansi": 6, "answer": 1, "anyhow": 2, "anyobj": 6, "anyth": 4, "anywai": 6, "anywher": [8, 14], "api": [0, 6, 7, 9, 11, 12, 14, 15], "api_vers": 7, "app": [0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "app1": 5, "app1_sess": 5, "app2": 5, "app_fold": 14, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appar": 6, "appear": [6, 11, 13], "append": [5, 6, 9, 11, 13, 15], "append_id": 13, "appl": 11, "appli": [0, 5, 6, 11, 12, 13, 15], "applic": [0, 2, 3, 4, 5, 8, 11, 12, 13, 14, 15], "appnam": [2, 5, 12, 14], "appname_sess": 5, "approach": [6, 14], "appropri": [6, 11], "approv": 12, "apps_fold": 2, "apt": 12, "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "arbitrari": [4, 6, 12], "archiv": 6, "archive_db": 6, "archive_nam": 6, "aren": 6, "arg": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 9, 11, 12, 14], "arithmet": 11, "around": [1, 6, 14], "arrai": [9, 15], "arrang": [6, 11], "arriv": [0, 6], "as_ordered_dict": 6, "ascii": 11, "asid": 6, "ask": [2, 5, 6], "assert": 6, "asset": 2, "assign": [6, 8, 11, 12, 14], "assist": 1, "associ": [6, 10, 11, 12], "assum": [2, 5, 6, 7, 10, 14], "async": 15, "asyncio": 16, "attach": [5, 6, 12, 14], "attack": [5, 9], "attempt": [11, 12], "attent": 6, "attr": [11, 13, 15], "attribut": [4, 5, 9, 11, 13, 14, 15], "attributes_plugin": 15, "attributespluginhtmx": 15, "aug": 11, "august": 11, "auth": [0, 2, 4, 6, 8, 9, 15, 16], "auth_group": 12, "auth_plugin": 12, "auth_us": [5, 6, 12], "auth_user_tag_group": [6, 12], "auth_user_tagged_group": 12, "authent": [5, 6, 13, 16], "author": [5, 6, 7, 16], "auto": [6, 13], "auto_import": 6, "auto_process": [13, 15], "autocomplete_queri": 15, "autodelet": 6, "autogener": 6, "automat": [2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "avail": [1, 2, 6, 8, 9, 12, 14, 15], "averag": 6, "avoid": [0, 1, 2, 5, 6, 8, 11], "awai": 6, "awar": 6, "awesom": [8, 13], "axel": 0, "axolotl": 0, "b": [5, 6, 8, 9, 11, 14, 15], "back": [5, 6, 11], "backend": 6, "background": [2, 4, 11, 15], "backport": 6, "backslash": 4, "backup": [2, 6, 11], "backward": [0, 6, 11], "bad_dai": 6, "bail": 6, "banana": 11, "bar": [8, 13], "barrier": 0, "base": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 15], "base64": [6, 8, 15], "base_dn": 12, "baseadapt": 6, "bash": 2, "basic": [0, 1, 2, 5, 6, 15, 16], "bat": 2, "batman": [7, 11, 13], "battl": 0, "beaslei": 0, "becaus": [0, 2, 4, 5, 6, 8, 9, 10, 11, 13, 15], "becom": 11, "bed": 10, "been": [0, 2, 5, 6, 8, 11], "befor": [1, 2, 5, 6, 8, 9, 11, 12, 13], "before_delet": 6, "before_insert": 6, "before_upd": 6, "begin": [8, 11, 12, 13], "beginn": 2, "behav": [6, 13], "behavior": [4, 6, 9, 11, 14, 15], "behaviour": [2, 6, 11, 13], "being": [1, 5, 6, 7, 8, 11, 15], "believ": [0, 5], "belong": [12, 14], "below": [5, 6, 7, 11, 13], "benefit": [6, 15], "best": [1, 2, 5, 6, 10, 13], "better": [0, 1, 2, 4, 6, 13, 14], "between": [5, 6, 9, 11, 14], "beyond": 11, "bgcolor": 9, "big": [6, 14], "bigint": 6, "bigint_id": 6, "bin": [1, 2], "binari": 6, "bind": 15, "birthplac": 6, "bit": 11, "bitbucket": 1, "black": [8, 11], "blank": [11, 13], "blink": 15, "blob": 6, "block": [9, 12, 15], "blockquot": 9, "blog": [1, 6, 9], "blog_post": 6, "blue": [4, 6, 11, 14], "bmp": 11, "boat": 6, "bob": 6, "bodi": [4, 8, 12, 13, 15], "boilerpl": 5, "bold": 9, "book": [1, 6], "boolean": [6, 13], "boost": [6, 8], "bootstrap": 13, "border": 15, "born": 6, "botaro": 0, "both": [1, 2, 4, 5, 6, 8, 11, 14], "bottl": [0, 4, 5, 8, 14], "bottle_app": 2, "bottlepi": [4, 5], "bottom": 11, "boundari": 11, "box": [0, 6, 11], "br": [8, 9], "bracket": [0, 8, 11], "branch": [1, 2], "break": [2, 6, 11], "breez": 1, "briefli": 2, "broke": 0, "broken": [0, 11], "brows": [2, 3, 13, 15], "browser": [1, 2, 3, 5, 7, 8, 13, 15], "bruce": [7, 13], "bsd": 1, "buffer": 6, "bug": [1, 3, 6], "build": [1, 2, 4, 5, 6, 9, 11, 13, 15], "builder": 15, "built": [0, 1, 4, 6, 8, 11, 13, 15, 16], "bulk_insert": 6, "bulma": [11, 13, 15], "bunch": 2, "button": [3, 4, 5, 9, 11, 15, 16], "bypass": [11, 12, 13], "byte": [6, 11], "bytecod": 8, "c": [1, 2, 3, 5, 6, 8, 9, 11, 14], "ca": 11, "cach": [0, 2, 4, 11, 16], "cache_db_select": 6, "calcul": 6, "calendar": 13, "call": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "callabl": [9, 11], "callback": [12, 15], "callback_url": 12, "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "cancel": [11, 15], "cancel_attr": 15, "cane": [10, 15], "cani": [10, 15], "cannot": [2, 5, 6, 8, 9, 11, 15], "capabl": [0, 13, 15], "capit": 15, "car": 6, "card": 6, "care": [5, 6, 8, 14, 15], "carl": 6, "carri": 14, "carrol": 0, "cart": 5, "case": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15], "case_sensit": 6, "cassio": 0, "catch": 6, "caus": [6, 11], "caveat": [6, 8, 14, 16], "cd": 2, "cdnj": [8, 13], "center": [5, 8], "centuri": 11, "ceo": [7, 13], "certain": [6, 8, 11, 13], "certif": 2, "cf": 4, "cgi": 11, "chair": 6, "challeng": 12, "chang": [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "change_email": 12, "change_password": [8, 12], "changed_fil": 4, "channel": 1, "chapter": [1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14], "char": [6, 12], "charact": [4, 6, 9, 11], "charg": [2, 14], "chat": 1, "check": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14], "check_": 15, "check_nonnegative_quant": 11, "check_reserv": 6, "checkbox": [8, 9], "checkboxwidget": 11, "cherri": 11, "chicago": 6, "choic": [1, 4, 11, 13], "choos": [1, 11, 12], "choosen": 6, "chose": 4, "chosen": 6, "chrome": [3, 15], "circular": 6, "circumst": 5, "cit0801": 7, "cit0802": 7, "cit1601": 15, "cite": [9, 11], "clark": [7, 13], "clash": 11, "class": [5, 6, 8, 9, 11, 12, 14, 15], "class_inner_except": 15, "class_styl": 13, "claudia": 6, "claus": [6, 8], "clean": [1, 9], "cleaner": 5, "cleanup": 0, "clear": [6, 11], "clearli": [6, 15], "clever": 11, "cli": [1, 2], "click": [3, 6, 9, 11, 13, 15], "clickabl": 13, "client": [0, 7, 11, 12, 15], "client_id": 12, "client_ip": 5, "client_secret": 12, "clientsid": 15, "clock": 11, "clone": [2, 4, 6, 15], "close": [5, 6, 8, 9], "cloudflar": [8, 13], "cmd": 2, "cn": 12, "co": [6, 11], "coa": 6, "code": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "col": 9, "collaps": [7, 9], "collat": 6, "collect": [0, 2, 14], "colnam": 6, "colon": 8, "color": [4, 6, 8, 9, 11, 15], "colspan": 9, "column": [6, 16], "com": [1, 3, 4, 8, 9, 12, 13, 15], "combin": [5, 9, 11, 13], "come": [0, 4, 5, 6, 8, 11, 12, 13, 14, 15], "comic": 11, "comma": [2, 6, 15], "command": [3, 4, 8, 9, 16], "comment": [6, 9], "commit": [4, 5, 7, 13, 14], "common": [2, 3, 4, 5, 8, 11, 12, 14, 15], "common_filt": 6, "commun": [0, 5, 6], "compact": 6, "compani": 13, "compar": [0, 6, 14], "comparison": [6, 11], "compat": [0, 1, 6, 9, 11], "competitor": 0, "compil": [4, 8, 9, 11], "compiled_css": 4, "complain": 6, "complet": [0, 6, 8, 9, 11, 12], "complex": [1, 2, 4, 5, 6, 8, 9, 12, 14, 15], "compliant": [6, 15], "complic": 5, "compon": [0, 3, 4, 5, 8, 9, 11, 12, 15], "component_1": 15, "compos": [2, 5], "compound": 9, "compress": [3, 4], "compris": 3, "compromis": 0, "comput": [1, 16], "concaten": [6, 9], "conceiv": 6, "concept": [0, 12], "concern": 6, "concurr": [0, 2, 6, 11, 15], "cond": 5, "condit": [6, 8, 11, 16], "condition": 6, "config": [2, 4], "configur": [1, 2, 5, 6, 11, 12, 14], "confirm": [2, 11, 12, 13, 15], "conflict": [0, 2, 4, 6], "confus": 6, "conjunct": 6, "conn": 5, "connect": [3, 4, 5, 11, 14], "connectionpool": 6, "consequ": [6, 11, 15], "consid": [5, 6, 8, 9, 11, 13, 14], "consider": 6, "consist": [5, 6, 8, 13, 14], "consol": [2, 9, 12, 15], "constant": 11, "constrain": 14, "constraint": [0, 6], "construct": [4, 6], "constructor": [5, 9, 12, 16], "consult": 6, "contain": [0, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "contect": 8, "content": [2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "context": [3, 5, 6, 8], "contextlib": 6, "continu": [6, 8, 15], "contribut": [0, 16], "control": [2, 4, 5, 8, 9, 11, 12, 13, 14, 15], "conveni": [6, 16], "convent": [4, 6, 8, 11, 14], "convers": [11, 16], "convert": [1, 4, 6, 9, 11], "cooki": [0, 4, 6, 15], "copi": [1, 2, 3, 8, 9, 13, 16], "copyfileobj": 6, "core": [1, 2, 4, 5, 11], "corei": 1, "corner": 13, "cornerston": 0, "correct": [1, 6, 12], "correctli": 11, "correspond": [2, 3, 4, 6, 9, 10, 11, 12, 13, 14], "corrupt": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 9, 11, 12, 14], "count": [5, 7, 12, 13, 15], "counter": [5, 6, 15], "counterpart": 4, "coupl": [13, 15], "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16], "created_bi": 6, "created_on": 6, "creation": [2, 6], "creativ": 12, "credential_decod": 6, "criteria": [6, 11], "critic": 2, "cross": [5, 6, 9], "crossorigin": 8, "crt": [2, 6], "crud": [3, 11, 15], "cruz": 1, "crypt": 2, "csrf": [5, 11], "csrf_protect": 11, "csrf_session": 11, "css": [1, 4, 5, 8, 9, 11, 12, 13, 15], "csv": 14, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "current": [2, 5, 6, 8, 9, 12, 13, 14, 15], "current_record": 6, "cursor": [6, 15], "curt": 6, "custom": [0, 2, 4, 8, 14, 15, 16], "custom_qualifi": 6, "customiz": [0, 11, 13], "cx_oracl": 6, "cyclic": 6, "czech": 10, "d": [2, 7, 9, 11], "daemon": 2, "dai": 11, "dal": [2, 4, 7, 11, 13, 15, 16], "dan": 0, "dancer": 12, "danger": 14, "dash": 11, "dashboard": [0, 2, 4, 6, 8, 11, 16], "dashboard_mod": 2, "data": [0, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16], "data_label": 15, "databas": [0, 1, 3, 4, 7, 12, 13, 14, 15, 16], "datalist": 15, "date": [2, 6, 13], "datetim": [4, 5, 6, 7, 11, 15], "datetimewidget": 11, "daunt": 1, "db": [2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_folder": [5, 7, 11, 13], "db_name": 6, "db_uid": 6, "dbadmin": 4, "dbio": 11, "dbo": 6, "dbset": 11, "dbstore": 5, "dc": [11, 12], "dd": 11, "de": [0, 1, 6, 10], "deal": [1, 6, 15], "debounc": 15, "debug": [2, 4, 5, 6, 8], "debugg": [1, 14], "decid": [6, 11, 13], "decim": [4, 6, 11], "declar": [0, 4, 5, 6], "decod": 6, "decode_credenti": 6, "decor": [1, 4, 6, 14, 16], "dedic": [1, 4, 5, 9, 14], "def": [4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "default": [0, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15], "defer": [6, 15], "defin": [2, 4, 5, 8, 11, 12, 13, 14, 15], "define_t": [5, 7, 11, 12, 13, 14], "definit": [6, 7, 11, 13, 14], "degre": 6, "del": [6, 9], "delai": [6, 15], "deleg": 6, "delet": [2, 4, 7, 11, 13, 15], "delete_record": 6, "delimit": [0, 5, 6, 8, 14], "demand": 6, "demo": [1, 2, 15], "deni": 7, "denorm": [6, 7], "depend": [0, 2, 3, 4, 5, 6, 8, 11, 13, 14], "deploi": 2, "deploy": 1, "deployment_tool": 2, "deprec": [6, 11, 15], "deriv": 6, "desc": 13, "descend": 9, "describ": [2, 3, 4, 5, 6, 11], "descript": [6, 7, 11, 12, 13], "design": [0, 4, 6, 8, 12, 15, 16], "desir": [5, 8, 11, 12], "dest": [4, 6], "detail": [0, 1, 2, 5, 6, 7, 8, 9, 11, 13, 15], "detail_field": 11, "determin": [4, 5, 6, 8, 10, 11, 12, 13], "determinist": 5, "dev": 12, "develop": [0, 1, 4, 5, 6, 12, 13, 14, 15], "development_tool": 2, "devic": 8, "di": [0, 5], "diagram": 7, "dialect": 6, "dict": [4, 5, 6, 10, 11, 13, 14, 15], "dictionari": [4, 5, 9, 10, 14], "did": [0, 4, 6, 15], "differ": [0, 2, 5, 6, 8, 10, 11, 12, 13, 14, 15], "difficult": [2, 15], "digit": [4, 6, 11, 12], "dimens": 11, "dir": [2, 11, 15], "direct": [2, 5, 6, 8, 11], "directli": [1, 2, 4, 6, 7, 8, 9, 11, 12, 13, 15], "directori": 12, "dirnam": [5, 7, 11, 13], "disabl": [6, 7, 9, 11, 13], "disallow": [6, 11], "discard": 6, "discord_client_id": 12, "discord_client_secret": 12, "discount": 6, "discounted_tot": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discov": 10, "discoveri": 2, "discrimin": 12, "discuss": [1, 3, 6, 8, 9, 11], "disk": [5, 6], "dismiss": [5, 14], "displai": [3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "distinct": [8, 11], "distributed_transaction_commit": 6, "ditch": 0, "div": [4, 5, 8, 11, 14, 15], "divis": [8, 9, 11], "divmod": 6, "django": [0, 1, 14], "do": [1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "do_connect": 6, "doc": 1, "dockerfil": 2, "doctor": 6, "doctyp": [8, 13], "document": [3, 5, 6, 8, 9, 11, 15], "doe": [0, 2, 5, 6, 8, 11, 12, 13, 14, 15], "doesn": [5, 6, 13], "dog": [10, 11, 15], "doh": 11, "dom": [8, 16], "domain": [11, 12], "don": [1, 2, 3, 4, 6, 8, 11, 12, 13], "done": [2, 6, 8, 11, 13, 14], "dot": 11, "doubl": [2, 6, 8], "doubt": 13, "down": [6, 11, 15], "downfal": 13, "download": 2, "downsid": [6, 14], "dramat": 6, "driven": 0, "driver": 6, "driver_arg": 6, "drop": 11, "dropdown": [11, 13, 15], "dsn": 6, "dual": 11, "due": [6, 7, 11], "dummi": [6, 8], "dummyrespons": 8, "dump": [5, 6, 15], "dumpfil": 6, "duplic": 6, "durabl": 7, "dure": 13, "dynam": [6, 7, 8, 9, 11, 12, 16], "e": [2, 4, 5, 6, 7, 8, 9, 11, 12, 15], "each": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "earli": [5, 6], "earlier": 15, "easi": [0, 5, 6, 8, 9, 11], "easier": [0, 6, 7, 8], "easiest": [6, 12], "easili": [4, 5, 6, 8, 9, 11, 13], "ebook": 1, "echo": 4, "ecosystem": 15, "edg": 15, "edit": [0, 2, 3, 4, 8, 9, 11, 12, 13, 14, 15], "edit_sidecar": 15, "editor": [1, 8], "educ": 2, "effect": [3, 6, 11], "effici": [0, 1, 5, 6, 14], "effort": 1, "efg": 9, "either": [6, 9, 11], "el": 9, "element": [6, 8, 9, 11, 13, 15], "els": [2, 6, 11, 12, 13, 14, 15], "elt": 15, "emac": 8, "email": [2, 5, 8, 11, 12, 14], "emails_onvalid": 11, "emb": 9, "embed": [8, 11], "emerg": 15, "emphas": 9, "employe": [5, 13], "empti": [2, 4, 6, 11, 15], "empty_regex": 11, "en": [5, 7], "enabl": [1, 5, 6, 7, 9, 12, 14, 15], "enable_record_vers": 6, "encapsul": [8, 9], "enclos": [6, 8], "encod": [5, 6, 11, 15], "encrypt": [0, 2, 5], "end": [4, 6, 8, 9, 11, 12, 13, 14, 15], "endpoint": [12, 15], "enforc": [5, 6, 11, 14], "engin": [6, 11], "english": 5, "enhanc": 6, "enough": [11, 12, 13], "ensur": [6, 11], "enter": [4, 5, 9, 11, 12], "enterpris": [1, 12], "entir": [6, 8, 14, 15], "entiti": 6, "entity_quot": 6, "entri": [0, 6, 7, 10, 11, 13, 14], "entropi": 11, "env": [1, 14], "envelop": 15, "environ": [0, 1, 4, 5, 6, 14], "epub": 1, "eq": 7, "equal": [6, 7, 9, 12, 15], "equip": 5, "equival": [4, 5, 6, 9, 11, 14], "errlog": 5, "error": [1, 2, 3, 5, 6, 7, 8, 9, 11, 14, 15], "error_messag": 11, "errorlog": 2, "escap": [6, 8, 9], "especi": [0, 2, 5, 6, 11, 12], "esprima": 4, "establish": [6, 14], "etc": [4, 5, 6, 7, 10, 14], "eval": 15, "evalu": [5, 6, 7, 8, 11, 15], "even": [1, 4, 5, 6, 8, 9, 11, 13, 14], "event": [2, 6, 15], "event_tim": 6, "eventu": 5, "ever": 6, "everi": [0, 2, 4, 5, 6, 12, 13, 14, 15], "everyon": [0, 1], "everyth": [2, 14], "evolut": 0, "ex": 2, "exact": 14, "exactli": [5, 6, 8], "exampl": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 16], "excel": [1, 13], "except": [2, 4, 5, 6, 9, 11, 12, 15], "excerpt": 8, "exclud": 11, "exclus": [0, 5, 6, 11, 12], "execut": [1, 2, 5, 6, 8, 9, 11, 14, 15], "exercis": [5, 12], "exist": [2, 5, 6, 11, 12, 13, 15], "exit": [2, 5], "exp": [4, 6], "expand": [1, 3], "expect": [2, 4, 5, 6, 9, 11, 14], "experi": [1, 11, 12], "experienc": 0, "experiment": [2, 5], "expir": [5, 6], "explain": [4, 5, 6, 11, 13], "explanatori": 6, "explicit": [0, 2, 4, 5, 6, 11, 12], "explicitli": [0, 2, 5, 6, 8, 9, 11], "explict": 6, "explor": 3, "export": 16, "export_to_csv_fil": 6, "expos": [0, 3, 4, 5, 6, 7, 12], "express": [4, 7, 8, 9, 10, 11, 13, 15], "extend": [0, 5, 6, 12, 14, 15], "extens": [3, 6, 11, 14], "extern": [2, 6], "extra": [5, 6, 11, 12], "extract": [6, 11, 15], "f": [6, 12, 13, 14, 15], "fa": 13, "face": [1, 6], "facebook": [0, 5], "facilit": 4, "fact": [4, 5, 6, 14], "factori": [6, 9], "fail": [3, 6, 8, 11], "failur": [4, 11, 15], "fake": 6, "fake_migrate_al": 6, "fall": 11, "fals": [2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "famou": 1, "fanci": 15, "far": [6, 15], "fast": [0, 4, 15], "faster": [0, 6, 8, 14], "father": 6, "father_id": 6, "fb00": 11, "fdb": 6, "fe80": 11, "feasibl": [2, 11], "featur": [0, 2, 4, 7, 8, 14, 16], "februari": 5, "feed": 6, "fetch": [14, 15], "fetchon": 6, "few": [6, 8, 12, 15], "ff00": 11, "fid": 6, "field": [2, 4, 5, 7, 9, 12, 14, 15, 16], "field1": 6, "field2": 6, "field3": 6, "field_id": 13, "fieldnam": [6, 15], "fieldstorag": 11, "fifth": 13, "file": [0, 1, 2, 3, 5, 6, 8, 9, 12, 13, 15, 16], "file_cont": [6, 15], "file_nam": [6, 15], "file_path": 14, "filenam": [2, 4, 5, 6, 11], "filep": 4, "filepath": 4, "filesystem": [0, 4, 5, 6], "fileuploadwidget": 11, "fill": [11, 15], "filter": [2, 4, 7, 11, 12], "filter_in": 11, "filter_out": 13, "final": [1, 2, 4, 6, 10, 13], "find": [1, 2, 4, 8, 10, 11, 12, 13], "find_by_tag": 12, "find_match": 10, "findal": 11, "fine": [2, 12, 13], "fire": 6, "firebird": 6, "firebird_embed": 6, "firebirdadapt": 6, "firebirdembed": 6, "firebirdembeddedadapt": 6, "firefox": [3, 15], "firfox": 15, "first": [0, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16], "first_nam": [4, 5, 12, 13], "first_onli": 9, "first_row": 6, "first_row_dict": 6, "fist": 11, "fit": 11, "five": 6, "fix": [5, 14], "fixtur": [0, 2, 4, 6, 9, 12, 14, 16], "fk_field": 15, "fk_tabl": 15, "fkdaog": 8, "flag": 11, "flash": [8, 15, 16], "flask": [0, 14], "flexibl": [0, 6, 12, 13, 15], "flight": 7, "float": [4, 11], "flow": 12, "fn": 2, "focu": 15, "fold": 6, "folder": [1, 2, 3, 4, 5, 7, 10, 11, 13, 14], "follow": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "font": [8, 11, 13], "foo": 13, "foot": 12, "footer": [8, 9], "forbid": 11, "forbidden": 11, "forc": [2, 6, 11, 12], "foreground": 11, "foreign": [1, 13], "foreign_key_check": 6, "forgeri": 5, "forget": [6, 13], "form": [0, 5, 6, 7, 10, 12, 13, 16], "form_bas": 11, "form_custom_widget": 11, "form_exampl": 11, "form_minim": 11, "form_nam": 11, "form_upload": 11, "form_widget": 11, "format": [4, 5, 7, 9, 10, 12, 13], "formatt": 15, "formdata": 7, "former": 6, "formstyl": [11, 13, 15], "formstylebootstrap4": 11, "formstylebulma": [11, 13, 15], "formstyledefault": [11, 13], "formstylefactori": 15, "forum": 3, "forward": [1, 3], "found": [2, 6, 11], "four": [2, 6], "fourth": 11, "fp": 5, "fr": 10, "framework": [0, 1, 2, 4, 5, 11, 12, 13, 14, 15], "free": [1, 5, 6, 12], "freetext": 15, "frequent": [1, 6, 11], "friendli": [0, 5, 8], "from": [0, 1, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16], "from_address": 12, "front": [0, 8, 11, 15], "frontend": 15, "fsstorag": 5, "ftp": 11, "full": [2, 4, 6, 8, 11, 13, 15], "fulli": [1, 4, 5, 6, 11], "fullnam": 6, "func": [2, 5], "function": [0, 2, 4, 5, 6, 7, 9, 13, 14, 15], "functool": 15, "furnitur": 5, "further": 12, "futur": [5, 14, 15], "g": [1, 2, 6, 9, 11], "gain": 2, "gather": 13, "gavgavian": 1, "gender": 6, "gener": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "german": 10, "get": [1, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16], "get_cooki": 15, "get_us": [4, 5, 12, 14], "get_var": [7, 14], "getvalu": 6, "gevent": [1, 2], "geventw": 2, "geventwebsocketserv": 2, "gia": 5, "gib": 6, "gif": 11, "git": [1, 2], "github": [2, 3, 4, 6, 13], "gitlat": 1, "give": [0, 2, 4, 5, 6, 8, 11, 12, 13], "given": [2, 5, 6, 8, 11], "global": [0, 5, 6, 8, 12, 14, 15], "go": [1, 2, 4, 6, 8, 13, 15], "goal": 0, "goe": [6, 11], "good": [2, 3, 11], "googl": [0, 3, 5, 8, 11, 13], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gotcha": 16, "gotta": 8, "granular": 6, "granulari": 11, "graphql": 7, "great": 15, "greater": 7, "greedi": 4, "green": [4, 6, 14], "grid": [0, 16], "grid_class_styl": 13, "grid_tutori": 13, "gridactionbutton": 13, "gridclassstyl": 13, "gridclassstylebulma": 13, "group": [0, 2, 3, 5, 12, 14], "group_nam": [5, 12], "groupbi": 11, "grow": [0, 6, 15], "gt": [7, 9], "guarante": [5, 6, 8, 14], "guid": 2, "guidelin": 12, "gunicorn": 2, "gunicorngev": 2, "gz": 11, "h": [2, 11], "h1": [4, 8], "h2": [8, 11], "ha": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "habit": 2, "had": 6, "hamburg": 8, "hand": [2, 6, 11, 15], "handi": 6, "handl": [2, 4, 5, 6, 11, 13, 14, 15], "handler": 4, "hang": 1, "happen": [5, 6], "hard": 14, "hardcod": 5, "has_membership": 12, "hash": [2, 6, 11], "have": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "he": 6, "head": [4, 8, 11, 13], "header": [4, 5, 6, 8, 9, 13, 15], "height": [11, 13, 15], "hello": [4, 5, 6, 8, 9, 11, 12, 15], "help": [2, 6, 7, 8, 9, 11, 14, 16], "helper": [0, 4, 5, 6, 8, 11, 13, 14, 16], "henc": [0, 2, 4, 5, 6, 11], "her": 11, "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "hesit": 6, "hex": 11, "hh": 11, "hi": [6, 11], "hidden": [6, 11, 15], "hidden_div": 15, "hidden_input": 15, "hide": [6, 13], "hierarch": 12, "high": [11, 12], "higher": 6, "highest": 11, "highli": [1, 13], "highlight": [1, 8], "hint": [13, 16], "histor": [0, 6], "histori": 11, "hit": [2, 6], "hmac": 11, "ho": 5, "hold": [6, 15], "home": 8, "host": [1, 2, 5, 11, 12], "hour": 11, "hous": 14, "housekeep": 6, "how": [0, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16], "howev": [6, 8, 9, 11, 13, 15], "href": [8, 9, 12, 13], "hs256": 5, "html": [1, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15], "html5": 8, "htmx": [13, 16], "htmx_form": 15, "htmx_form_demo": 15, "htmx_grid": 15, "htmx_list": 15, "htmxautocompletewidget": 15, "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "httrespons": 5, "hulk": 11, "hx": 15, "hypertext": 15, "hyphen": 9, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "i18n": 10, "ibm_db_dbi": 6, "icon": [8, 13], "id": [0, 1, 2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15], "id1": 6, "id2": 6, "id_field_nam": 13, "id_valu": 13, "idea": 6, "ident": [6, 7, 11, 14], "identifi": [4, 5, 6, 9, 11], "idn": 11, "ie": 11, "ietf": 11, "ignor": [4, 6, 8, 9, 11, 13, 15], "ignore_attribute_plugin": 13, "ignore_common_filt": [6, 11], "ignore_field_cas": 6, "iip": 6, "illustr": [6, 8], "imag": [6, 8, 9, 11], "image_fil": 6, "imagin": [5, 6, 8, 15], "imap": 6, "imapadapt": 6, "imaplib": 6, "img": 4, "immedi": [2, 6, 13], "immens": 0, "implement": [4, 5, 6, 8, 11, 12, 14, 15], "impli": 7, "implic": 5, "implicit": 6, "implicitli": [6, 11], "import": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "import_and_sync": 6, "import_from_csv_fil": 6, "impos": 8, "improv": [11, 12, 13], "includ": [0, 4, 5, 6, 7, 9, 11, 13, 14, 15], "include_action_button_text": 13, "include_path": 4, "inclus": [0, 11], "incom": 2, "incorrect": 8, "increas": 5, "increment": 6, "inde": [0, 5], "indent": 8, "independ": [0, 5, 6, 12], "index": [1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16], "indic": [4, 6, 11, 14, 15], "individu": [0, 2, 5, 6, 7, 8, 11], "ineffici": [5, 6], "infinit": 6, "info": [2, 4, 5, 6, 12], "inform": [1, 5, 6, 7, 11, 12, 14, 16], "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingr": 6, "ingredi": 4, "ingresadapt": 6, "ingresdbi": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "init": 13, "initi": [0, 2, 4, 5, 8, 11], "inject": [6, 8, 11, 16], "inlin": [9, 15], "inner": [5, 8, 15], "input": [2, 4, 5, 6, 8, 11, 15], "insensit": [6, 11], "insert": [3, 5, 7, 8, 11, 12, 13, 15], "insid": [1, 2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "inspector": 8, "inspir": 7, "instal": [0, 1, 3, 4, 5, 6, 12, 16], "instanc": [6, 9, 11, 13, 15], "instanti": [6, 12, 13, 14], "instead": [1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "instruct": [2, 11], "int": [4, 6, 11, 12, 14], "int2ip": 6, "integ": [2, 4, 6, 7, 9, 11, 15], "integr": [0, 1, 8, 15], "intend": [6, 15], "intention": 11, "interact": [0, 5], "interchang": 12, "interfac": [0, 3, 5, 6, 13, 14, 15], "intermedi": 6, "intern": [0, 1, 4, 5, 6, 8, 12, 13], "internation": [0, 4, 5, 11, 14, 16], "interpret": [0, 6, 7, 9], "intersect": 6, "introduc": [0, 8], "introduct": [1, 2, 16], "intuit": 11, "invalid": [2, 5, 6, 11], "invert": [6, 11], "invis": 6, "involv": [6, 8, 13, 14], "io": [2, 6], "ip": [6, 11], "ip2int": 6, "ip_list": 12, "ipaddr": 6, "ipaddress": 12, "iptabl": 2, "ipv4": [6, 11], "ipv4address": 12, "ipv4network": 12, "ipv6": 11, "is_6to4": 11, "is_act": 6, "is_automat": 11, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_imperson": 12, "is_in_db": [6, 13], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_loc": 11, "is_localhost": 11, "is_multicast": 11, "is_not_empti": 6, "is_null_or": 13, "is_priv": 11, "is_publ": 6, "is_reserv": 11, "is_rout": 11, "is_teredo": 11, "is_tim": 6, "isdir": [7, 11, 13], "isn": [11, 13], "iso": 7, "issu": [0, 3, 6], "ital": 9, "italian": [5, 10], "item": [6, 7, 8, 9, 11], "itemize1": 8, "itemize2": 8, "iter": [8, 11], "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "itself": [2, 6, 11, 15], "iv": 6, "j": [0, 4, 5, 8, 10, 14, 16], "javascript": [1, 4, 7, 9, 15], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlite": 6, "jdbcsqliteadapt": 6, "jetbrain": 1, "jim": [0, 1, 13], "jinja2": 5, "job": [7, 11, 13], "john": [0, 6], "join": [4, 5, 7, 11, 12, 13, 14, 16], "jonathan": 6, "journalist": [7, 13], "journei": 1, "jpeg": 11, "jpg": 11, "jpsteil": 13, "jqueri": [9, 11, 15], "jsl": 15, "json": [0, 1, 2, 4, 5, 6, 7, 10, 11, 14, 15], "jump": 1, "junk": 6, "just": [1, 2, 4, 5, 6, 7, 8, 11, 13, 15], "jwt": 5, "jython": 6, "k": [5, 8, 14], "karg": 9, "kbyte": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14], "keep_valu": 11, "kei": [2, 4, 5, 7, 9, 10, 11, 12, 16], "keller": 0, "ken": 6, "kent": [7, 13], "kevin": 0, "keycod": 15, "keyup": 15, "keyword": [8, 9], "kfield": 15, "kind": [0, 4], "kinterbasdb": 6, "know": [1, 2, 5, 6, 8, 13], "knowledg": 1, "known": [6, 8], "known_express": 10, "ktabl": 15, "kwarg": [6, 15], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 11], "label": [6, 7, 8, 11, 13, 14, 15], "lack": [6, 11, 14], "lambda": [5, 6, 9, 11, 13, 15], "languag": [0, 1, 4, 5, 10, 14, 15, 16], "larg": [6, 11], "larger": 0, "last": [1, 5, 8, 11, 12, 13, 15], "last_insert_id": 6, "last_nam": [5, 12, 13], "last_row": 6, "lastdot": 11, "lastrowid": 6, "later": [1, 2, 4, 5, 6, 8, 9, 11, 12, 13], "latest": [2, 6, 14], "latin1": 6, "latter": [6, 11, 14], "launch": [1, 2], "launcher": 1, "lax": 5, "layer": [5, 14, 16], "layout": [11, 12, 13, 14, 15, 16], "lazi": [2, 4, 14], "lazili": 15, "lazy_t": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 12, "ldap_set": 12, "ldapplugin": 12, "lead": 13, "leader": 15, "learn": [1, 6], "least": [1, 2, 6, 11, 14, 15], "leav": [5, 6, 12], "left": [8, 11, 13, 15], "len": 15, "length": [6, 11], "less": [7, 11, 14], "let": [2, 6, 7, 11, 15], "letter": 11, "level": [2, 6, 7, 10, 11, 12], "leverag": 0, "li": [8, 11, 12, 15], "lib": [2, 8, 9, 13], "libldap2": 12, "librari": [0, 2, 4, 6, 10, 11, 12, 14, 15], "libsasl2": 12, "libsass": 4, "licens": 1, "lifespan": 11, "lifetim": 5, "lighter": [6, 14], "like": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "limit": [0, 2, 5, 6, 7, 8, 11, 12, 14, 15], "line": [4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16], "link": [2, 6, 7, 8, 9, 11, 12, 13, 15], "lint": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 15], "list_of_field": 6, "listabl": 6, "listen": 3, "listproperti": 6, "liststringproperti": 6, "listwidget": 11, "littl": [1, 5, 6], "ll": [1, 2, 3, 5, 6, 8, 11, 13, 15], "load": [3, 4, 5, 6, 8, 13, 15], "loazkji": 8, "local": [3, 5, 6, 11, 12, 13, 14], "localhost": [2, 4, 5, 6, 11], "locat": [2, 4, 8, 14], "lock": [5, 6], "log": [2, 3, 4, 5, 6, 8, 9, 12, 14, 15], "logerror": 5, "logfil": 6, "logging_level": 2, "logic": [2, 5, 11, 12, 14], "login": [0, 2, 4, 5, 6, 8, 11, 12, 14, 16], "logo": [0, 8, 9], "logout": [0, 8, 12], "long": [0, 2, 11], "longer": [0, 6], "longtext": 6, "look": [2, 3, 5, 6, 7, 9, 11, 12], "lookup": [5, 7, 11], "loop": [6, 8], "lose": [6, 11], "lost": [1, 5, 6, 14], "lot": [1, 4, 6], "love": 0, "low": 0, "lower": 11, "lowercas": 11, "lowest": 11, "lru": 5, "lt": [2, 9], "luca": [0, 1], "m": [0, 2, 6, 9, 11], "mac": 6, "machin": 6, "macneiln": 2, "maco": 2, "made": [1, 2, 6, 8, 11, 13], "magic": 0, "mai": [2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "mail": [1, 3, 6, 11], "mailto": 11, "main": [0, 1, 2, 4, 6, 8, 13, 14, 15, 16], "maintain": [6, 8, 13, 15], "mainten": 15, "major": 6, "make": [0, 1, 2, 5, 8, 9, 10, 11, 12, 13, 14, 15], "makefil": 2, "man": 15, "manag": [0, 1, 2, 3, 4, 5, 6, 11, 12], "mandatori": [5, 6, 8], "mani": [0, 1, 2, 4, 5, 7, 8, 11, 13, 14, 15], "manipul": 6, "manner": [5, 14], "manual": [2, 3, 4, 6, 9, 12, 13], "map": [2, 4, 6, 9, 10, 11, 14], "map_non": 6, "marco": 6, "margin": [8, 15], "mark": [6, 12], "marvel": 11, "massimo": [0, 6], "master": [1, 2, 6, 13], "match": [2, 4, 5, 6, 7, 8, 9, 10, 11], "materi": 6, "math": 15, "mathemat": 6, "matter": 14, "max": [10, 11, 15], "maximum": [5, 6, 11], "maxip": 11, "maxlen": 11, "maxsiz": 11, "mayb": [2, 5], "md5": 11, "me": [9, 11, 13, 15], "mean": [1, 2, 3, 5, 6, 8, 11, 12, 14], "mechan": [0, 5, 6, 8, 9, 12, 14], "meet": 6, "member": [11, 12], "membership": [0, 5, 11, 12, 14], "memcach": [0, 6], "memoiz": 16, "memori": 5, "mention": [5, 12, 15], "menu": [8, 11, 12], "merg": 6, "mess": 1, "messag": [2, 4, 5, 7, 8, 11, 13, 14, 15], "met": 6, "meta": [8, 9], "metadata": 6, "metatag": 9, "method": [4, 5, 7, 8, 9, 11, 12, 13, 15, 16], "mfa": 12, "micah": 0, "microsoft": [1, 12], "mid": 6, "middlewar": 5, "might": [7, 11], "migrat": [14, 16], "migrate_en": 6, "mileston": 1, "min": [8, 11, 13], "min_length": 11, "mind": [1, 4, 6, 7, 8, 11], "minim": [5, 13, 16], "minimalist": [8, 14], "minimalist_pag": 8, "minimum": [6, 11], "minip": 11, "minor": [8, 14], "minsiz": 11, "minut": 11, "miss": [2, 12, 13], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 11, 13], "mm": 11, "mode": [2, 4, 5, 11, 12], "model": [0, 3, 4, 7, 9, 13, 14, 15], "modern": [6, 12, 15], "modif": 2, "modifi": [2, 4, 6, 7, 8, 11, 13, 14, 15], "modified_bi": 6, "modified_on": 6, "modul": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16], "modular": [0, 6, 8, 14], "moment": 6, "mongo": 6, "mongodb": 6, "mongodbadapt": 6, "monkei": 5, "monolith": 0, "monospac": 9, "month": 11, "more": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "moreov": [6, 15], "most": [0, 3, 4, 5, 6, 11, 12, 13, 14, 15], "mostli": 5, "mother": 6, "mother_id": 6, "mount": 12, "move": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 4, 5, 6, 8, 11, 13, 14, 15], "multi": [1, 2, 6, 14], "multicast": 11, "multipl": [0, 1, 2, 4, 6, 8, 9, 10, 11, 14, 15, 16], "multiprocess": 5, "multiselect": 11, "multius": 12, "must": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14], "my": [5, 8, 9, 11, 12, 15], "my_app": 4, "my_id": 15, "my_password_fil": 2, "my_url_path": 14, "my_var": [5, 9], "myapp": [2, 4], "myclass": 9, "mycompon": 15, "mycustomwidget": 11, "mydb": 6, "myerror": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunct": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myorder": 6, "myqueri": 6, "myrecord": 6, "mysaltvalu": 11, "myset": 6, "mysidebar": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyl": 11, "mytabl": 6, "myvalu": 6, "myvirtualfield": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "n": [5, 6, 10, 15], "name": [2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "nameonli": 6, "narrow": 6, "nativ": 6, "native_json": 11, "nav": 8, "navbar": [8, 12], "navig": [8, 13, 15], "ndb": 6, "ne6fz": 8, "necessari": [6, 8, 9], "need": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "neg": [6, 11], "negat": 6, "neither": [6, 11], "nest": [6, 8, 9], "nested_select": 6, "network": [11, 12], "never": [5, 6, 8, 11, 14, 15], "nevertheless": 6, "new": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "new_app": [8, 9], "new_password": 15, "new_sidecar": 15, "newer": 8, "newli": [4, 6, 10], "newlin": [6, 11], "next": [1, 2, 5, 6, 8, 11], "nginx": 2, "nice": 9, "nicer": 15, "nico": 0, "nid": 6, "no_backslash_escap": 6, "no_tabl": [11, 15], "node": 4, "non": [4, 5, 6, 11, 13, 14], "none": [2, 5, 6, 7, 9, 11, 13, 14, 15], "nor": [2, 6, 11], "normal": [2, 4, 5, 6, 8, 9, 11, 13, 15], "northwind": 1, "nosqladapt": 6, "not_accept": 11, "not_author": 12, "notat": [6, 9], "note": [1, 2, 5, 8, 9, 11, 14, 15], "noth": [2, 5, 6, 11, 15], "notic": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "notnul": 6, "notset": 2, "now": [0, 2, 4, 5, 6, 8, 11, 13, 15], "nowadai": 1, "null": [6, 7, 11, 15], "num": 6, "number": [2, 4, 5, 6, 8, 10, 11, 13], "number_work": 2, "numer": [6, 11], "o": [4, 5, 7, 11, 13], "oauth": 12, "oauth2": [0, 5], "oauth2discord": 12, "oauth2facebook": 12, "oauth2googl": 12, "obj": [6, 8], "object": [0, 5, 6, 7, 8, 9, 10, 11, 14, 16], "observ": 6, "obtain": [2, 4, 6, 12, 15], "obviou": [6, 7, 8, 12], "obvious": [6, 11], "occasion": [6, 11], "occur": [2, 6, 8, 11, 15], "odd": [6, 8], "off": [0, 2, 4, 6, 13, 15], "offici": [0, 6, 11, 15], "offset": [6, 7], "often": [4, 6, 12, 15], "ok": [9, 14], "old": [2, 5, 11, 14], "older": 11, "ombott": [0, 4, 14], "omit": 2, "on_delete_act": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "onc": [1, 2, 5, 9, 11, 12, 13, 15], "onclick": 15, "ondelet": 6, "one": [0, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 15], "ones": [2, 5, 6, 7, 11, 14], "onion": 5, "onkeydown": 15, "onli": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "onlin": [1, 6], "onload": 15, "onvalid": 11, "onward": 6, "opac": 15, "open": [1, 2, 3, 4, 5, 6, 9], "oper": [0, 3, 5, 10, 11, 12, 16], "operationalerror": 11, "oppos": [6, 9], "opposit": [5, 6], "oprow": 6, "optim": [4, 6], "optimis": 6, "option": [0, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "oracleadapt": 6, "order": [1, 2, 4, 5, 6, 7, 9, 11, 13, 14], "order_item": 6, "orderbi": [11, 12, 13, 15], "ordereddict": 6, "org": [7, 9, 15], "organ": 4, "origin": [6, 8, 9, 10, 11], "other": [0, 1, 2, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16], "other_pag": 15, "otherfield": 6, "othert": 6, "otherwis": [5, 6, 8, 11, 12, 13], "oufil": 6, "our": [0, 1, 2, 4, 5, 6, 9, 11, 15], "out": [0, 1, 2, 6, 8, 15], "outer": [5, 11, 15], "outlin": [4, 5], "output": [1, 2, 4, 5, 6, 7, 8, 9, 11, 15], "output_styl": 4, "outsid": [0, 5, 6, 11, 13, 14, 15], "ov": 6, "over": [6, 8, 13, 15], "overcom": 6, "overhead": 6, "overkil": 12, "overload": 6, "overrid": [4, 6, 8, 9, 12, 13, 14, 15], "override_class": 13, "override_styl": 13, "overview": 16, "overwritten": [5, 14], "own": [4, 5, 6, 8, 11, 12, 13, 14, 15], "owner": [6, 11], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "ownership": 6, "p": [2, 8, 11], "p10n": 10, "packag": [0, 6, 9], "pad": [8, 14, 15], "page": [1, 5, 6, 9, 11, 12, 13, 14, 15, 16], "page_head": 8, "page_left_menu": 8, "page_script": 8, "pagin": [6, 13], "paint": [4, 11], "pair": [6, 9], "pam": [0, 5], "pam_plugin": 12, "pamplugin": 12, "paragraph": [1, 5, 9, 11, 13], "param": [11, 12, 13, 14, 15], "paramet": [1, 2, 4, 5, 12, 15], "parent": [2, 6, 8, 15], "parenthes": 6, "park": [7, 13], "pars": [4, 5, 6, 10, 11, 12], "parsemodul": 4, "parser": 6, "part": [6, 9, 11, 14], "parti": [0, 5], "partial": [4, 6, 14], "particip": 1, "particular": [0, 1, 6, 11, 13, 14, 15], "particularli": 6, "pass": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "passphras": 5, "password": [0, 2, 3, 5, 6, 8, 11, 12, 14, 15], "password_fil": 2, "passwordwidget": 11, "patch": 5, "path": [2, 4, 5, 6, 7, 10, 11, 13, 14, 15], "path_to": 2, "pattern": [4, 7], "paus": 2, "payment": 6, "payrol": 5, "pbkdf2": 11, "pc": 3, "pdf": [1, 11], "pdkdf2": 2, "per": [0, 4, 5, 7, 13], "percent": 6, "percentag": 6, "perfect": 0, "perfectli": 13, "perform": [0, 3, 5, 6, 11, 12, 14], "permiss": [0, 5, 6, 14], "permit": 6, "permitted_tag": 9, "persist": [5, 6, 12], "person": [2, 6, 7, 11, 13], "persons_and_th": 6, "perspect": 0, "pet": 6, "peter": [7, 13], "phase": 6, "philip": 6, "phone": 11, "photograph": [7, 13], "phrase": 6, "physic": 12, "pick": [4, 5, 12], "piec": [0, 5, 6, 8, 11], "pierro": 0, "pip": [0, 1, 6], "pirsch": 0, "piu": 5, "pixel": 11, "place": [1, 5, 6, 8, 11, 13, 15], "placehold": [6, 10, 11, 15], "plai": [0, 15], "plain": 6, "plan": [1, 15], "platform": [0, 1, 16], "pleas": [5, 6], "plu": [6, 8, 12, 13], "plugin": [4, 5, 11, 13, 15], "plural": [0, 4, 5, 13, 14, 15, 16], "pm": 11, "png": [9, 11], "point": [2, 3, 4, 5, 6, 7, 8, 11, 13, 14], "pointer": 15, "pointless": 6, "polici": [0, 16], "pool": [4, 5], "pool_connect": 6, "pool_siz": [5, 6], "poor": 15, "pop": 15, "popul": 6, "popular": [0, 6], "port": [0, 2, 3, 5, 6, 14], "portabl": 6, "portion": 13, "posit": [5, 9], "possibl": [4, 5, 6, 8, 11, 13, 14], "possibli": 6, "post": [4, 6, 7, 9, 11, 12, 13, 14, 15], "post_action_button": 13, "post_text": 6, "post_var": [7, 14], "post_writ": 7, "postel": 10, "postel\u00ed": 10, "postfix": 14, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyco": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserv": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocess": 14, "potenti": 2, "power": [2, 6, 7, 12, 14, 15], "pprint": 6, "pr": 1, "practic": [0, 6, 8, 11, 14, 16], "pre": [2, 4, 5, 6, 13], "pre_action_button": 13, "precaut": 2, "preced": [5, 6, 7, 8, 11], "preciou": 13, "predefin": 8, "predetermin": 14, "prefer": [2, 5, 6, 9, 15], "prefix": [2, 4, 6, 7, 8, 11, 14], "preliminari": 1, "prepend": [4, 7, 11, 14, 15], "prepend_schem": 11, "preprocess": 14, "prerequisit": [5, 16], "presenc": [5, 6], "present": [2, 6, 8, 11, 12], "preserv": [0, 5], "press": [3, 4, 13], "pretti": [4, 6, 11, 14], "prevent": [2, 5, 6, 8, 9, 11, 15], "previou": [2, 5, 6, 8, 9, 11, 15], "previous": [5, 6, 11], "price": 6, "prima": 5, "primari": [8, 12], "primarili": 13, "prime": 11, "print": [4, 6, 9, 10, 12, 14], "privat": [5, 11], "probabl": [4, 11], "problem": [0, 1, 6, 8, 12, 13, 15], "procedur": 16, "process": [2, 4, 5, 6, 8, 11, 12, 13, 14, 15], "produc": [0, 2, 5, 6, 8, 9, 11, 12], "product": [2, 4, 6, 11, 15], "product_nam": 11, "product_quant": 11, "product_record": 15, "profil": [0, 8, 12, 14], "program": [1, 2, 3, 6, 8, 9, 11, 15], "programmat": [6, 9, 11], "project": [0, 2, 4, 5, 6], "project_nam": 2, "prompt": [2, 4, 6], "proper": [5, 6, 13], "properli": 4, "properti": [6, 11], "protocol": 3, "prototyp": [11, 15], "provid": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "prudent": 6, "pseudo": 6, "psycopg2": 6, "public": 6, "publish": 4, "pull": [1, 6], "punycod": 11, "pure": 6, "purpos": [0, 5, 6, 9, 11, 12, 14], "put": [4, 5, 7, 11, 15], "put_writ": 7, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15], "py4web": [2, 3, 4, 5, 7, 8, 9, 11, 12, 13], "py4web_filesystem": 6, "py4web_wsgi": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15], "pyfilesystem": 6, "pymongo": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytd": 6, "python": [0, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15], "python2": [2, 14], "python3": [1, 2], "pyweb": 14, "q": [2, 6, 13], "qualifi": 6, "quantiti": [6, 11], "queri": [4, 5, 7, 9, 11, 12, 13, 14, 15], "query1": 6, "query2": 6, "queryselector": 15, "queryselectoral": 15, "querystr": 13, "question": [1, 2, 6], "quick": [1, 11], "quickli": [2, 11, 13], "quiet": 2, "quirk": 5, "quit": [1, 2, 5, 7, 8, 11, 13], "quot": [2, 9], "quote_minim": 6, "quote_nonnumer": 6, "quotechar": 6, "r": [2, 6, 11], "race": 11, "radio": [9, 11], "radiowidget": 11, "radiu": 15, "rais": [5, 6, 11, 12, 14], "ram": [5, 6], "randint": [8, 12], "random": [6, 8, 11, 12, 15], "rang": [4, 6, 8, 12, 14], "rapid": [0, 11, 15], "rare": 6, "rather": [6, 8, 9, 11, 15], "raw": 16, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "reach": 2, "react": 15, "reactiv": 15, "read": [1, 4, 5, 6, 7, 13, 15], "readabl": [5, 6, 7, 13, 14], "readi": [2, 6], "readm": [1, 11], "readonli": [2, 11, 15], "real": [2, 4, 7, 8, 11], "real_ident": [6, 7], "realiz": 6, "realli": [1, 4, 6], "realnam": 11, "reap": 15, "reason": [2, 5, 6, 7, 13, 14], "reassembl": 0, "rebuild": 6, "rebuilt": 6, "rec_id": 7, "recal": 8, "receiv": 6, "recent": [3, 5, 6, 11, 13], "recereiv": 15, "recip": 2, "recogn": [4, 6], "recommend": [1, 5, 6, 11], "record": [7, 11, 12, 13, 14, 15], "record_id": [7, 15], "recov": 6, "recurr": 6, "recurs": 8, "recycl": 6, "red": [3, 4, 6, 8, 9, 11], "redefinit": 6, "redesign": 0, "redi": 0, "redirect": [4, 5, 11, 12, 13, 15], "reduc": [0, 5, 15], "redund": [6, 11], "ref": [9, 11], "refer": [1, 5, 7, 8, 11], "referenc": [6, 7, 9], "referenced_bi": 7, "reflect": [1, 6], "refresh": 13, "regex": [7, 9, 11], "regexlib": 11, "regist": [0, 5, 6, 8, 12, 14], "register_plugin": 12, "register_vue_compon": 15, "registr": [4, 11], "registration_stamp": 11, "regular": [0, 2, 4, 6, 7, 8, 10, 11, 13, 14, 15], "reimplement": 15, "reinstal": 2, "reinstat": 6, "reject": 11, "rel": [4, 6, 8, 13, 14], "relat": [5, 16], "relationship": 6, "releas": [0, 2], "relev": 6, "reli": [0, 4, 6], "reliabl": 1, "reload": [2, 3, 4, 5, 11, 15], "remain": [0, 6, 11], "rememb": [3, 5, 6, 11], "remote_addr": [5, 12], "remov": [0, 2, 4, 6, 9, 11, 12], "renam": [1, 7], "render": [5, 7, 8, 9, 11, 13, 14, 15], "renoir": 8, "reopen": 5, "repackag": 0, "repeat": [6, 11], "replac": [0, 2, 6, 8, 9, 11, 13, 15], "replic": [1, 5], "report": [4, 8], "repositori": [1, 2, 3], "repr_row": 6, "repres": [0, 8, 11], "represent": 9, "representational_state_transf": 7, "representing_field": 11, "request": [0, 1, 2, 5, 6, 7, 11, 12, 13, 14, 15], "request_reset_password": 12, "requir": [0, 1, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15], "required_fold": 11, "requires_": 14, "requires_login": 14, "requires_membership": 5, "rescu": 6, "reserv": 11, "reset": 6, "reset_password": 12, "resourc": [6, 12, 16], "respect": [6, 9, 11, 13], "respons": [4, 5, 6, 8, 13, 14, 15, 16], "rest": [7, 12], "restapi": [0, 3, 16], "restart": [2, 4, 5, 6, 13], "restor": 6, "restrict": [5, 6, 7, 11, 15], "restructuredtext": 1, "result": [1, 6, 7, 8, 11, 13, 15], "resultset": 6, "ret": 6, "retain": 6, "retri": 6, "retriev": [4, 5, 6, 14, 15], "return": [5, 6, 7, 9, 11, 12, 13, 15], "reus": 6, "revers": [5, 6], "revert": 6, "rewrit": 6, "rewritten": 6, "rfc": 11, "rid": 6, "ride": 8, "right": [1, 2, 3, 5, 6, 8], "road": 15, "rocket": 14, "rocket3": [2, 14], "rocketserv": 2, "role": [2, 5, 9], "roll": [5, 6], "rollback": 4, "root": [6, 8, 12, 13], "roughli": 6, "rout": [0, 2, 3, 5, 13, 14, 15], "rover": 6, "row": [8, 9, 11, 13, 14, 15], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 13, "rpc": 6, "rst": 1, "rule": [4, 5, 8, 11, 13], "run": [1, 3, 4, 5, 8, 12, 14, 16], "run_in_transact": 6, "runtim": [2, 6], "s3": 6, "s_": [11, 15], "s_autocomplet": 15, "s_autocomplete_result": 15, "s_down_kei": 15, "s_search": 15, "safari": 15, "safe": [1, 5, 6, 9, 13, 14], "safer": [6, 11, 13], "safeti": 2, "sai": [6, 12], "said": 7, "sake": 6, "salt": 11, "sam": 0, "same": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "same_sit": 5, "saml": 12, "saml2": 0, "sampl": 12, "sandbox": 15, "sane": 4, "sanit": [5, 9, 14], "santa": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "save": [1, 2, 4, 5, 6, 10, 11], "scaffold": [2, 4, 5, 6, 8, 14, 15], "scaffold_zip": 2, "scale": [5, 8], "scan": 6, "scare": 1, "schafer": 1, "schema": 6, "scheme": 11, "school": 12, "scope": 4, "score": 15, "score_input": 15, "scratch": 16, "script": [2, 5, 8, 15], "sdk": 2, "se": 6, "seamlessli": 8, "search": [0, 1, 2, 3, 6, 9, 11, 12, 16], "search_button_text": 13, "search_form": 13, "search_queri": 13, "search_text": 13, "search_valu": 15, "searchabl": 6, "second": [5, 9, 11, 12, 14], "secret": [5, 12], "section": [2, 4, 6, 8, 11, 12], "secur": [0, 2, 7, 12], "see": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "seem": 6, "seen": [0, 5, 6, 7, 9, 11, 13, 15], "segment": 4, "select": [3, 4, 7, 10, 11, 12, 13, 14, 15, 16], "selected_el": 15, "selectedindex": 15, "selector": [9, 15], "selector1": 9, "selector2": 9, "selectorn": 9, "selectwidget": 11, "self": [2, 5, 9, 11, 13, 15], "semant": [11, 12], "send": [2, 6, 11, 12], "send_two_factor_email": 12, "sender": 12, "sens": [0, 6, 11, 12], "sensit": [5, 6, 11], "sent": [5, 6, 12, 15], "separ": [2, 5, 6, 8, 11, 12, 13, 15], "sequenc": [5, 6], "sequenti": 6, "seri": 1, "serial": [4, 5, 6, 8, 9, 11], "serializ": [0, 5, 6, 9], "serv": [0, 2, 4, 6, 12, 14, 15], "server": [0, 2, 3, 4, 7, 8, 12, 14, 15, 16], "server_addr": 6, "serversid": 15, "session": [0, 2, 4, 6, 9, 11, 12, 13, 14, 15, 16], "session_app1": 5, "session_secret_kei": 5, "set": [0, 1, 2, 4, 5, 7, 8, 9, 10, 12, 15], "set_attribut": 6, "set_encod": 6, "set_head": 6, "set_password": 3, "setinterv": 15, "setup": [1, 3, 4, 12, 13, 15, 16], "setvirtualfield": 6, "sever": 6, "sf": 15, "sftp": 6, "sh": 15, "sha512": [8, 11], "share": [6, 14], "shell": 9, "ship": 8, "shoe": 6, "shop": 5, "shortcut": [8, 11], "shorter": [6, 11], "shortli": 4, "should": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "show": [1, 2, 4, 5, 6, 8, 11, 12, 13], "show_id": 13, "shown": [2, 6, 11, 12], "shutil": 6, "side": [1, 6, 15, 16], "sidebar": 8, "sidebar_en": 8, "sidebar_menu": 9, "sidecar": 15, "sign": [2, 4, 5, 6, 8, 11, 12], "signatur": [5, 7, 9, 11], "signed_url": 5, "signer": 5, "signifi": 8, "signific": 8, "signing_info": 11, "similar": [0, 4, 5, 6, 9, 11, 14], "similarli": [6, 9], "simpl": [1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 15, 16], "simple_queri": 15, "simpler": [6, 8, 13], "simplest": [2, 4], "simpli": [2, 4, 5, 6, 8, 10, 15], "simplic": [6, 15], "simplifi": [0, 4, 6, 8], "simultan": 6, "sinc": [0, 4, 5, 6, 7, 8, 11, 12, 13, 14], "singl": [0, 2, 5, 6, 7, 8, 9, 11, 12, 13], "singleton": [5, 14], "site": [1, 2, 4, 5, 6, 9, 13, 15], "situat": 6, "six": 6, "size": [5, 6, 8, 11], "skip": [5, 15], "slash": [1, 4, 5, 12], "slave": 6, "slice": 6, "slicker": 0, "slow": 6, "slug": 11, "small": [5, 11], "smaller": 6, "snippet": 6, "so": [2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "soap": 9, "socket": 15, "solut": [0, 1, 2, 6, 15], "some": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 14], "some_condit": 8, "some_valu": 6, "somefield": 6, "somefil": 6, "somepath": 5, "somet": 6, "someth": [5, 6, 7, 8, 9, 11], "sometim": [6, 8, 9, 11, 13], "somevalu": 6, "somewhat": 11, "somewher": 6, "soon": [8, 15], "sophist": 14, "sort": 13, "sourc": [3, 4, 6, 11], "source1": 11, "south": 1, "sp": 6, "space": [6, 8, 11, 13], "span": [4, 14], "spatialit": 6, "speak": 5, "special": [0, 4, 5, 6, 8, 9, 10, 12, 14, 16], "specif": [1, 2, 5, 6, 7, 8, 9, 11, 12, 14, 15], "specifi": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "speed": [6, 7, 8], "sphinx": 1, "spiderman": [7, 13], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 11], "split_email": 11, "sql": 16, "sql_mode": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 11, 14], "sqlite": [1, 5, 7, 11, 12, 13], "sqlite3": 6, "sqliteadapt": 6, "squar": [0, 8], "src": [5, 6, 8, 9, 15], "ss": 11, "ssl": 2, "ssl_cert": 2, "ssl_kei": 2, "sslcert": 6, "sslkei": 6, "sslmode": 6, "sslrootcert": 6, "sso_id": [5, 12], "stabl": 2, "stai": 6, "stand": [7, 9, 11], "standard": [1, 2, 3, 6, 7, 12, 13, 14, 15, 16], "start": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "start_imperson": 12, "startup": [6, 14, 16], "state": [5, 6, 7, 14, 15], "stateless": [5, 15], "statement": [6, 8, 11], "static": [1, 8, 9, 14, 16], "static_dev": 4, "statu": 7, "stderr": 2, "stdout": 2, "steil": [0, 1, 13], "step": [2, 6, 12, 14, 15], "step1": 5, "step2": 5, "step3": 5, "step_complet": 5, "still": [2, 5, 6, 9, 11, 13, 14], "stone": 13, "stop": [2, 3, 12], "stop_imperson": 12, "storag": [5, 6, 7, 11, 13], "store": [0, 2, 5, 6, 9, 11, 12, 14, 15], "stored_item": 6, "stored_item_arch": 6, "stori": [0, 5], "str": [2, 5, 6, 9, 14, 15], "stream": [4, 5, 6, 14], "strength": 7, "strict": 11, "strictli": [4, 15], "string": [4, 5, 7, 8, 9, 10, 11, 13], "stringio": 6, "stringlistproperti": 6, "strip": [2, 11, 14], "strong": [0, 9, 12], "strongli": [1, 5, 11, 13], "structur": [1, 4, 5, 6, 10, 12, 13, 14, 16], "stuck": 2, "student": 2, "studi": 1, "studio": 1, "stuff": [11, 13], "style": [4, 8, 11, 15, 16], "stylesheet": [8, 13], "sub": 6, "subclass": [6, 11], "subfold": [4, 5, 6], "subhead": 9, "subject": [6, 7, 12], "submiss": [11, 15], "submit": [1, 5, 6, 9, 11, 12, 13, 15], "submodul": 0, "subnet": 11, "subqueri": 15, "subsect": 6, "subset": [0, 6, 11], "substitut": [6, 8], "substr": 11, "subtl": 6, "succe": 6, "succeed": 0, "success": [0, 4, 5, 6, 7, 12, 15], "successfulli": 12, "sudo": [2, 12], "suffer": [0, 12], "suffic": 6, "suffici": 6, "sugar": 5, "suggest": [1, 6, 11], "sugizo": 0, "suit": 2, "summar": 6, "superhero": [6, 7, 11, 13, 15], "superman": [6, 7, 11, 13], "superpow": [6, 7], "superseed": 6, "suppli": 9, "support": [1, 4, 5, 8, 9, 10, 11, 12, 14, 15, 16], "suppos": 6, "suppress": [2, 9], "sure": [2, 3, 4, 5, 6, 10, 11, 12, 15], "surround": 11, "susan": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 11, "symlink": [2, 4], "sync": [2, 6], "synopsi": 11, "syntact": [5, 11], "syntax": [0, 1, 4, 5, 6, 7, 9, 11, 12, 14, 15, 16], "system": [0, 2, 5, 6, 9, 12, 15], "sysus": 6, "t": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14], "t_folder": 5, "tab": [3, 5, 11], "tabl": [5, 7, 11, 12, 13, 14, 15], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 11, 15], "tag": [0, 5, 7, 8, 14, 15, 16], "tag_input": 15, "tagged_db": 12, "tagged_nam": 12, "tagger": 9, "tags_input": 15, "tail": 6, "take": [2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "taken": 11, "tamper": [5, 6], "tanti": 15, "tantissimi": 10, "tar": 11, "target": [6, 9, 15], "task": [1, 5, 6, 12], "tast": 6, "tbodi": 6, "tcp": 3, "td": 6, "teacher": 12, "technic": 15, "tell": [2, 4, 5, 6, 12, 13, 15], "temp": 6, "templat": [0, 9, 11, 12, 14, 15, 16], "temporari": 6, "temporarili": 5, "ten": 11, "tenanc": 6, "teradata": 6, "teradataadapt": 6, "teredo": 11, "term": [6, 11], "termin": [4, 8, 15], "test": [0, 2, 4, 6, 8, 9, 11, 12, 13], "text": [2, 5, 6, 8, 9, 13, 15], "textarea": 11, "textareawidget": 11, "textual": 9, "th": 6, "than": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "thank": [0, 6, 9], "that_templ": 8, "thead": 6, "thei": [0, 2, 4, 5, 6, 7, 8, 11, 12, 14, 15], "them": [0, 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14], "themselv": [6, 8], "therefor": [2, 4, 5, 6, 8, 9, 11, 14], "therein": 6, "thi": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "thing": [2, 5, 6, 14], "thing_tags_default": 6, "think": [5, 6, 8, 13, 15], "third": [0, 5, 6, 11], "this_templ": 8, "thisisatest": 9, "thisisthekei": 11, "those": [0, 2, 5, 6, 8, 9, 12, 14, 15], "though": 8, "thought": [0, 6, 12], "thread": [2, 5, 6, 14], "threadsafevari": 5, "three": [0, 5, 6], "through": [2, 11], "throughout": 5, "thu": [6, 8], "thumbnail": 11, "ti": 5, "ticket": [0, 3, 6], "tickets_onli": 2, "tild": 6, "tim": 6, "time": [0, 2, 4, 5, 8, 13, 14, 15], "timedelta": 11, "timeoffset": 9, "timeout": 5, "timestamp": [5, 7, 15], "tip": [2, 13, 16], "titl": [3, 8, 11, 15], "tmp": [5, 6], "todai": [0, 11, 15], "todo": 15, "togeth": [0, 6, 8, 10, 13], "toi": 6, "token": [5, 11], "too": [2, 5, 6, 11, 15], "took": 6, "tool": [0, 6, 12, 15], "top": [8, 10, 11, 12], "topic": [13, 16], "tornado": 2, "total": [6, 7], "total_pric": 6, "touch": 8, "tr": 6, "traceback": [5, 6], "track": [1, 6, 14], "trade": 6, "tradit": [2, 6], "trail": [2, 11], "train": 1, "transact": 5, "transform": [5, 6, 11, 15], "transit": 15, "translat": [1, 2, 4, 6, 8, 11, 14, 15, 16], "transpar": [6, 8, 11], "trap": 15, "treat": [6, 14], "tree": [4, 8, 11], "tri": [0, 6, 14], "trick": 2, "trickeri": 8, "trigger": [3, 5, 6, 15], "trivial": [5, 6], "true": [1, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "truncat": 6, "try": [1, 2, 5, 6, 11, 12], "ttl": 5, "tupl": [6, 8, 9], "turn": [0, 4, 6, 12, 13, 15], "tutori": [2, 13, 15], "twice": [5, 6], "twitter": [0, 5, 12], "two": [0, 1, 2, 4, 5, 6, 8, 11, 13, 14, 15], "two_factor": 12, "two_factor_filt": 12, "txt": [0, 2, 4, 6], "type": [2, 4, 5, 7, 8, 9, 12, 13, 15], "typewrit": 9, "typic": [4, 5, 6, 8, 11], "u": [2, 6, 9, 11], "ubuntu": 12, "uc": 1, "uid": 6, "ul": [8, 11, 12, 15], "un": [8, 9, 10, 15], "unari": 6, "unauthent": [5, 6, 9], "unauthor": 6, "unchang": [6, 11], "under": [2, 3, 4, 5, 6, 11], "underli": 14, "underscor": [6, 9, 11], "understand": [0, 1, 4, 6, 7, 8, 13, 16], "undocu": 15, "unfortun": [6, 13], "unicod": [6, 11], "unicodedecodeerror": 6, "uniform": 6, "union": 6, "uniqu": [6, 7, 11], "unit_pric": 6, "univers": [6, 9, 11], "unknown": 4, "unless": [2, 3, 5, 6, 8, 11], "unlik": [0, 2, 4, 6, 7, 8, 14, 15], "unnam": [6, 9], "unned": 2, "unord": 9, "unpkg": 15, "unquot": [6, 9], "unsaf": [5, 9], "untest": [2, 12], "until": [0, 5, 6, 8, 11], "unus": 6, "unusu": 6, "unwant": [2, 6], "unzip": 2, "up": [1, 2, 5, 6, 8, 12, 15], "updat": [2, 5, 11, 13, 14, 15, 16], "update_languag": 10, "update_na": 6, "upgrad": [6, 16], "upload": [0, 4, 14], "upload_fold": [6, 11], "upload_help": 15, "uploadf": 6, "uploadfield": 6, "uploadfold": 6, "uploadsepar": 6, "upon": [2, 8, 12, 14], "upper": [4, 5, 11], "upper_cas": 5, "uppercas": [5, 11], "uri": 12, "url": [2, 4, 5, 7, 8, 11, 12, 13, 14, 15], "url_prefix": 2, "url_sign": 5, "url_to_post_to": 15, "urlsign": 16, "us": [0, 1, 3, 4, 7, 10, 11, 14, 16], "usabl": 13, "usag": [2, 3, 4, 5, 6, 9, 11, 12, 13], "useful": 11, "useless": [11, 14], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "user_email": 14, "user_id": [5, 6, 12, 14], "user_nam": 6, "user_outside_network": 12, "user_password": 6, "usernam": [5, 6, 12], "usr": 1, "usual": [1, 2, 5, 6, 7, 8, 9, 11], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "util": [2, 4, 5, 8, 9, 11, 12, 13, 14, 16], "uuid": [5, 6], "uuid4": [5, 6], "v": [5, 9, 11, 15], "v3": 1, "val": [13, 15], "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [2, 4, 7, 8, 9, 13, 14, 16], "validate_j": 4, "valq7711": [0, 4], "valu": [2, 5, 7, 8, 9, 10, 11, 13, 15], "valuabl": 1, "value1": 6, "value2": 6, "value_field": 11, "var": [6, 9, 11, 14, 15], "varchar": 6, "variabl": [4, 5, 6, 9, 10, 11, 13, 15], "variou": [5, 6], "ve": [1, 2, 3, 5, 8, 9, 11, 13, 15], "vehicl": 5, "vendor": 15, "vendor_typ": 15, "venv": 2, "verbos": 6, "veri": [0, 4, 5, 6, 8, 9, 11, 12, 14], "verif": 12, "verifi": [5, 11, 12], "verify_email": 12, "versa": 5, "version": [1, 3, 5, 7, 8, 11, 15], "vertica": 6, "verticaadapt": 6, "via": [5, 6, 8, 9, 12, 15], "vice": 5, "video": [2, 15], "view": [1, 5, 6], "viewport": 8, "virtual": [1, 16], "virtualenv": [1, 2], "virtualfield": 6, "visibl": 4, "visit": [3, 5, 6, 8, 11, 12], "visit_log": 5, "visitor": [6, 9, 11], "visto": 5, "visual": 1, "vital": 12, "volt": 5, "vscode": 2, "vue": [0, 4, 15], "vulner": 8, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "wa": [0, 5, 6, 11, 12], "wai": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "wait": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 9, 11, 13, 15], "warn": [2, 5], "warp": 10, "watch": [2, 3, 16], "wayn": [7, 13], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "web": [0, 1, 2, 5, 6, 8, 12, 13, 14, 15, 16], "web2pi": [0, 1, 2, 3, 4, 6, 11, 12, 13, 16], "webserv": 4, "websit": [6, 15], "websocket": 15, "welcom": [2, 4, 5, 8, 14, 15], "well": [0, 5, 6, 8, 11, 12, 15], "were": [0, 4, 6], "what": [1, 4, 5, 6, 8, 11, 12, 14, 15, 16], "whatev": [9, 15], "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whenev": [4, 6], "where": [1, 2, 4, 6, 7, 8, 11, 12, 14, 15], "whether": [5, 6, 8, 11, 12, 13, 14], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whichev": 15, "while": [0, 5, 6, 7, 11, 12, 14], "white": [9, 15], "whitelist": 12, "who": [0, 12], "whole": [4, 11], "whose": [6, 8, 11], "why": [5, 6, 8, 14], "widget": [6, 16], "width": [8, 11], "wiki": [6, 7], "wikipedia": [6, 7], "wild": 6, "wildcard": 4, "william": 6, "window": [1, 2, 4, 5, 6, 8, 11], "wish": [1, 6, 11, 15], "wit": 2, "with_alia": 6, "within": [0, 1, 4, 5, 6, 8, 9, 11, 13, 15], "without": [1, 8, 9, 13, 15, 16], "wolf": 0, "won": 6, "wood": 6, "word": [5, 6, 10, 13], "work": [0, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "worker": [2, 5], "workflow": [5, 16], "workload": 6, "workspacefold": 2, "world": [4, 5, 6, 8, 9, 11], "worri": [4, 6], "worth": 8, "would": [0, 5, 6, 8, 9, 11, 13, 15], "wouldn": 6, "wrap": [5, 10, 11], "wrapper": [14, 15], "writabl": [5, 6, 11, 14], "write": [2, 4, 5, 6, 8, 11, 14], "written": [1, 8, 11, 13], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 9, 13], "x": [2, 6, 8, 9, 11, 13], "xml": [5, 8, 11, 14, 15], "xmlescap": 9, "xmln": 9, "xss": [6, 8, 9], "xyz": [9, 11], "y": [2, 9, 11], "yaml": 2, "yatl": [0, 4, 5, 6, 11, 13, 15, 16], "yb": 9, "ye": [2, 6], "year": [11, 15], "yes_or_no": 6, "yet": [0, 2, 4, 5, 6, 8, 11, 15], "yield": 6, "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "your": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "your_app": 11, "your_full_path_to_py4web": 1, "your_nam": [1, 15], "yourapp": 6, "yourappnam": 2, "youremail": 12, "yourself": [1, 2, 11, 13], "youtub": [2, 6], "yyyi": 11, "z": [9, 11], "zanferrari": 0, "zap": 12, "zap_id": 12, "zapper": 12, "zero": [6, 8, 11, 13], "zip": [0, 2, 6, 11], "zip_cod": 15, "zxjdbc": 6}, "titles": ["What is py4web?", "Help, resources and hints", "Installation and Startup", "The Dashboard", "Creating an app", "Fixtures", "The Database Abstraction Layer (DAL)", "The RestAPI", "YATL Template Language", "YATL helpers", "Internationalization", "Forms", "Authentication and authorization", "Grid", "From web2py to py4web", "Advanced topics and examples", "py4web: the reference Manual"], "titleterms": {"A": [1, 9, 11], "On": 4, "One": 6, "The": [1, 3, 4, 5, 6, 7, 11, 13, 15], "_lastsql": 6, "_scaffold": 4, "about": [5, 6], "abstract": 6, "access": 14, "acknowledg": 0, "action": [7, 12, 13], "ad": 6, "adapt": 6, "advanc": [6, 11, 15], "aka": 2, "alias": 6, "all": 6, "alon": 6, "an": [4, 6], "anoth": 6, "any_of": 11, "anywher": 5, "app": [2, 4], "applic": 6, "arg": 14, "as_dict": 6, "as_list": 6, "asyncio": 15, "attempt": 6, "attribut": 6, "auth": [5, 12, 14], "authent": 12, "author": 12, "autocomplet": 15, "avg": 6, "base": 6, "basic": [8, 11, 13], "beautifi": 9, "belong": 6, "binari": 2, "block": 8, "bodi": 9, "broken": 6, "built": 9, "button": 13, "cach": [5, 6], "cacheabl": 6, "call": [2, 14], "callabl": 13, "callback": 6, "cascad": 6, "case": 6, "cat": 9, "caveat": 5, "chang": 4, "checkbox": 11, "children": 9, "class": 13, "cleanup": 11, "client": 5, "coalesc": 6, "coalesce_zero": 6, "column": 13, "com": 2, "combin": 6, "command": [2, 6], "commit": 6, "common": 6, "complex": 11, "comput": 6, "condit": 5, "connect": 6, "constructor": [6, 11], "contain": 6, "content": 16, "contribut": 1, "control": 6, "conveni": 5, "convers": 14, "cooki": 5, "copi": [4, 6], "count": 6, "counter": 14, "creat": 4, "crud": 13, "crypt": 11, "csv": 6, "custom": [5, 6, 9, 11, 13], "dai": 6, "dal": [5, 6], "dashboard": 3, "data": 6, "databas": [5, 6, 11], "datastor": 6, "date": 11, "db": 6, "debug": 1, "decor": 5, "def": 8, "default": [6, 8], "defin": 6, "define_t": 6, "delet": 6, "deploy": 2, "design": [2, 11], "develop": 8, "dictionari": [6, 11], "discord": [1, 12], "distinct": 6, "distribut": 6, "div": 9, "docker": 2, "dom": 9, "drop": 6, "dynam": 4, "elif": 8, "els": 8, "em": 9, "endswith": 6, "engin": 2, "environ": 2, "equal": 11, "exampl": [7, 11, 13, 14, 15], "except": 8, "exclud": 6, "executesql": 6, "experi": 6, "experiment": 6, "export": 6, "express": 6, "extend": 8, "facebook": 12, "factor": 12, "failur": 6, "fake_migr": 6, "featur": [6, 13], "fetch": 6, "field": [6, 11, 13], "file": [4, 10, 11, 14], "filter": [6, 13], "filter_in": 6, "filter_out": 6, "final": 8, "find": [6, 9], "first": [2, 6], "fix": 6, "fixtur": 5, "flash": [5, 14], "folder": 6, "form": [9, 11, 14, 15], "format": [6, 11, 15], "from": [2, 4, 6, 14], "function": [8, 11], "gae": 2, "gcloud": 2, "gener": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 12], "gotcha": 6, "grid": [13, 14, 15], "group": [1, 6], "groupbi": 6, "h1": 9, "h2": 9, "h3": 9, "h4": 9, "h5": 9, "h6": 9, "have": 6, "head": 9, "hello": 14, "help": 1, "helper": 9, "hint": 1, "hour": 6, "how": 1, "html": [6, 9], "htmx": 15, "http": 2, "i": [0, 9], "id": 6, "ilik": 6, "img": 9, "imperson": 12, "import": 6, "includ": 8, "index": 6, "indic": 16, "inform": 8, "inherit": 6, "inject": [5, 9], "inner": 6, "input": 9, "insert": 6, "insid": 12, "instal": 2, "internation": 10, "introduct": 6, "is_alphanumer": 11, "is_dat": 11, "is_date_in_rang": 11, "is_datetim": 11, "is_datetime_in_rang": 11, "is_decimal_in_rang": 11, "is_email": 11, "is_empty_or": 11, "is_equal_to": 11, "is_expr": 11, "is_fil": 11, "is_float_in_rang": 11, "is_imag": 11, "is_in_db": 11, "is_in_set": 11, "is_int_in_rang": 11, "is_ipaddress": 11, "is_ipv4": 11, "is_ipv6": 11, "is_json": 11, "is_length": 11, "is_list_of": 11, "is_list_of_email": 11, "is_low": 11, "is_match": 11, "is_not_empti": 11, "is_not_in_db": 11, "is_null_or": 11, "is_slug": 11, "is_strong": 11, "is_tim": 11, "is_upload_filenam": 11, "is_upp": 11, "is_url": 11, "isempti": 6, "iter": 6, "j": 15, "join": 6, "kei": [6, 13], "keyword": 6, "label": 9, "languag": 8, "last": 6, "layer": 6, "layout": 8, "lazi": 6, "ldap": 12, "left": 6, "legaci": 6, "len": 6, "less": 6, "li": 9, "like": 6, "limitbi": 6, "line": 2, "list": 6, "local": 2, "locat": 6, "logic": 6, "login": 3, "lower": 6, "main": 3, "make": 6, "mani": 6, "manipul": 11, "manual": [1, 16], "max": 6, "memcach": 5, "memoiz": 5, "memori": 6, "method": [6, 14], "microsoft": 6, "migrat": 6, "min": 6, "minim": 11, "minut": 6, "mobil": 8, "model": 6, "modern": 1, "modif": 6, "month": 6, "more": 6, "mssql": 6, "multipl": [5, 12], "mysql": 6, "name": 6, "new": 6, "new_app": 2, "nosql": 6, "note": 6, "o": 14, "oauth2": 12, "object": [4, 12, 13, 15], "ol": 9, "old": 6, "on_defin": 6, "onc": 6, "one": 6, "oper": 6, "option": [2, 9, 11], "oracl": 6, "orderbi": 6, "orderby_on_limitbi": 6, "other": [6, 11], "outer": 6, "overview": 9, "p": 9, "page": [3, 4, 8], "pam": 12, "paramet": [6, 11, 13], "permiss": 12, "pip": 2, "platform": 2, "plugin": 12, "plural": [6, 10], "podman": 2, "polici": 7, "polymodel": 6, "pool": 6, "practic": 7, "pre": 9, "prerequisit": [1, 2], "primari": 6, "primarykei": 6, "procedur": 2, "py4web": [0, 1, 6, 14, 15, 16], "pycharm": 1, "python": 1, "pythonanywher": 2, "q": 15, "queri": 6, "quick": 6, "quot": 6, "rang": 11, "raw": 6, "real": 6, "record": 6, "recurs": 6, "redefin": 6, "redi": 5, "redirect": 14, "refer": [6, 13, 16], "regexp": 6, "relat": 6, "remot": 6, "render": 6, "replic": 6, "repres": 6, "represent": 6, "request": 4, "reserv": 6, "resourc": 1, "respons": 7, "restapi": 7, "return": [4, 8, 14], "rname": 6, "rollback": 6, "rout": 4, "row": 6, "run": [2, 6], "sampl": 13, "scratch": 4, "script": 9, "search": 13, "second": 6, "secur": [6, 11], "select": [6, 9], "self": 6, "sequence_nam": 6, "server": [1, 5, 6, 9], "session": 5, "set": [6, 11, 13, 14], "set_password": 2, "setup": 2, "share": 5, "shell": [2, 6], "shortcut": 6, "side": [5, 9], "sidecar": 11, "signatur": 6, "simpl": 14, "singular": 6, "sort": [6, 11], "sourc": [1, 2], "span": 9, "special": [2, 11], "sql": 6, "sqlite": 6, "stand": 6, "standard": [8, 11], "startswith": 6, "startup": 2, "static": 4, "string": [6, 15], "structur": [8, 11], "style": [6, 9, 13], "substr": 6, "sum": 6, "summari": 6, "super": 8, "support": [2, 6], "synchron": 6, "syntax": 8, "t": 15, "tabl": [6, 9, 16], "table_class": 6, "tag": [6, 9, 11, 12], "tbodi": 9, "td": 9, "templat": [4, 5, 8, 13], "text": 11, "textarea": 9, "th": 9, "thead": 9, "thi": 1, "time": [6, 11], "tip": 1, "titl": 9, "topic": 15, "tour": 6, "tr": 9, "transact": 6, "translat": [5, 10], "trigger_nam": 6, "try": 8, "tt": 9, "tupl": 11, "tutori": 1, "two": 12, "two_factor_requir": 12, "two_factor_send": 12, "two_factor_tri": 12, "type": [6, 11], "ubuntu": 2, "ui": 12, "ul": 9, "understand": 2, "up": 14, "updat": [6, 10], "update_or_insert": 6, "update_record": 6, "upgrad": 2, "upload": [6, 11], "upper": 6, "uri": 6, "url": 9, "urlsign": 5, "us": [2, 5, 6, 8, 9, 12, 13, 15], "usag": 15, "user": 12, "util": 15, "valid": [6, 11], "validate_and_insert": 6, "validate_and_upd": 6, "valu": [4, 6], "variabl": [8, 14], "version": [2, 6], "video": 1, "view": 14, "virtual": [2, 6], "vscode": 1, "watch": 4, "web": [3, 4], "web2pi": 14, "what": 0, "while": 8, "widget": [11, 15], "without": [2, 6, 11], "workflow": 8, "workplac": 1, "world": 14, "wsgi": 2, "xml": [6, 9], "yatl": [8, 9], "year": 6}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A": [[9, "a"]], "A minimal form example without a database": [[11, "a-minimal-form-example-without-a-database"]], "A modern python workplace": [[1, "a-modern-python-workplace"]], "ANY_OF": [[11, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adding attributes to fields and tables": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced features": [[6, "advanced-features"]], "Advanced form design": [[11, "advanced-form-design"]], "Advanced topics and examples": [[15, "advanced-topics-and-examples"]], "Auth Plugins": [[12, "auth-plugins"]], "Auth UI": [[12, "auth-ui"]], "Authentication and authorization": [[12, "authentication-and-authorization"]], "Authentication using Auth": [[12, "authentication-using-auth"]], "Authorization using Tags": [[12, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[15, "autocomplete-widget-using-htmx"]], "BEAUTIFY": [[9, "beautify"]], "BODY": [[9, "body"]], "Basic form example": [[11, "basic-form-example"]], "Basic grid example": [[13, "basic-grid-example"]], "Basic syntax": [[8, "basic-syntax"]], "Built-in helpers": [[9, "built-in-helpers"]], "CAT": [[9, "cat"]], "CLEANUP": [[11, "cleanup"]], "CRUD settings": [[13, "crud-settings"]], "CRYPT": [[11, "crypt"]], "CSV (all tables at once)": [[6, "csv-all-tables-at-once"]], "CSV (one Table at a time)": [[6, "csv-one-table-at-a-time"]], "CSV and remote database synchronization": [[6, "csv-and-remote-database-synchronization"]], "Caching and Memoize": [[5, "caching-and-memoize"]], "Caching selects": [[6, "caching-selects"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[15, "celery"]], "Checkbox validation": [[11, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combining rows": [[6, "combining-rows"]], "Command line options": [[2, "command-line-options"]], "Common filters": [[6, "common-filters"]], "Complexity and security validators": [[11, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Computed fields": [[6, "computed-fields"]], "Connection failures (attempts parameter)": [[6, "connection-failures-attempts-parameter"]], "Connection pooling": [[6, "connection-pooling"]], "Connection strings (the uri parameter)": [[6, "connection-strings-the-uri-parameter"]], "Contents:": [[16, null]], "Convenience Decorators": [[5, "convenience-decorators"]], "Copy data from one db into another": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom Action Buttons": [[13, "custom-action-buttons"]], "Custom Field types": [[6, "custom-field-types"]], "Custom columns": [[13, "custom-columns"]], "Custom fixtures": [[5, "custom-fixtures"]], "Custom forms": [[11, "custom-forms"]], "Custom helpers": [[9, "custom-helpers"]], "Custom widgets": [[11, "custom-widgets"]], "Customizing style": [[13, "customizing-style"]], "DAL constructor": [[6, "dal-constructor"]], "DAL introduction": [[6, "dal-introduction"]], "DAL signature": [[6, "dal-signature"]], "DIV": [[9, "div"]], "Data representation": [[6, "data-representation"]], "Database cascades": [[6, "database-cascades"]], "Database folder location": [[6, "database-folder-location"]], "Database quoting and case settings": [[6, "database-quoting-and-case-settings"]], "Database validators": [[11, "database-validators"]], "Date and time validators": [[11, "date-and-time-validators"]], "Debugging py4web with PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Debugging py4web with VScode": [[1, "debugging-py4web-with-vscode"]], "Default migration settings": [[6, "default-migration-settings"]], "Default page layout": [[8, "default-page-layout"]], "Default values with coalesce and coalesce_zero": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Dictionaries and tuples with IS_IN_SET": [[11, "dictionaries-and-tuples-with-is-in-set"]], "Distributed transaction": [[6, "distributed-transaction"]], "Dynamic Web Pages": [[4, "dynamic-web-pages"]], "EM": [[9, "em"]], "Experiment with the py4web shell": [[6, "experiment-with-the-py4web-shell"]], "Exporting and importing data": [[6, "exporting-and-importing-data"]], "Expressions": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "FORM": [[9, "form"]], "Fetching a Row": [[6, "fetching-a-row"]], "Field constructor": [[6, "field-constructor"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[11, "file-upload-field"]], "First run": [[2, "first-run"]], "Fixing broken migrations": [[6, "fixing-broken-migrations"]], "Fixtures": [[5, "fixtures"]], "Form structure manipulation": [[11, "form-structure-manipulation"]], "Form validation": [[11, "form-validation"]], "Forms": [[11, "forms"]], "From scratch": [[4, "from-scratch"]], "From web2py to py4web": [[14, "from-web2py-to-py4web"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Gotchas": [[6, "gotchas"]], "Grid": [[13, "grid"]], "Grouping and counting": [[6, "grouping-and-counting"]], "H1, H2, H3, H4, H5, H6": [[9, "h1-h2-h3-h4-h5-h6"]], "HEAD": [[9, "head"]], "HTML": [[9, "html"]], "HTML and XML (one Table at a time)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Help, resources and hints": [[1, "help-resources-and-hints"]], "Helpers overview": [[9, "helpers-overview"]], "Hints and tips": [[1, "hints-and-tips"]], "How to contribute": [[1, "how-to-contribute"]], "I": [[9, "i"]], "IMG": [[9, "img"]], "INPUT": [[9, "input"]], "IS_ALPHANUMERIC": [[11, "is-alphanumeric"]], "IS_DATE": [[11, "is-date"]], "IS_DATETIME": [[11, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[11, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[11, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[11, "is-decimal-in-range"]], "IS_EMAIL": [[11, "is-email"]], "IS_EMPTY_OR": [[11, "is-empty-or"]], "IS_EQUAL_TO": [[11, "is-equal-to"]], "IS_EXPR": [[11, "is-expr"]], "IS_FILE": [[11, "is-file"]], "IS_FLOAT_IN_RANGE": [[11, "is-float-in-range"]], "IS_IMAGE": [[11, "is-image"]], "IS_INT_IN_RANGE": [[11, "is-int-in-range"]], "IS_IN_DB": [[11, "is-in-db"]], "IS_IN_DB and Tagging": [[11, "is-in-db-and-tagging"]], "IS_IN_SET": [[11, "is-in-set"]], "IS_IN_SET and Tagging": [[11, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[11, "is-ipaddress"]], "IS_IPV4": [[11, "is-ipv4"]], "IS_IPV6": [[11, "is-ipv6"]], "IS_JSON": [[11, "is-json"]], "IS_LENGTH": [[11, "is-length"]], "IS_LIST_OF": [[11, "is-list-of"]], "IS_LIST_OF_EMAILS": [[11, "is-list-of-emails"]], "IS_LOWER": [[11, "is-lower"]], "IS_MATCH": [[11, "is-match"]], "IS_NOT_EMPTY": [[11, "is-not-empty"]], "IS_NOT_IN_DB": [[11, "is-not-in-db"]], "IS_NULL_OR": [[11, "is-null-or"]], "IS_SLUG": [[11, "is-slug"]], "IS_STRONG": [[11, "is-strong"]], "IS_TIME": [[11, "is-time"]], "IS_UPLOAD_FILENAME": [[11, "is-upload-filename"]], "IS_UPPER": [[11, "is-upper"]], "IS_URL": [[11, "is-url"]], "Indexes": [[6, "indexes"]], "Indices and tables": [[16, "indices-and-tables"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserting and updating from a dictionary": [[6, "inserting-and-updating-from-a-dictionary"]], "Installation and Startup": [[2, "installation-and-startup"]], "Installing from binaries": [[2, "installing-from-binaries"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Installing from source (globally)": [[2, "installing-from-source-globally"]], "Installing from source (locally)": [[2, "installing-from-source-locally"]], "Internationalization": [[10, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[13, "key-features"]], "LABEL": [[9, "label"]], "LDAP": [[12, "ldap"]], "LI": [[9, "li"]], "Lazy Tables": [[6, "lazy-tables"]], "Left outer join": [[6, "left-outer-join"]], "Legacy databases and keyed tables": [[6, "legacy-databases-and-keyed-tables"]], "Logical operators": [[6, "logical-operators"]], "Login into the Dashboard": [[3, "login-into-the-dashboard"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Making a secure connection": [[6, "making-a-secure-connection"]], "Many to many relation": [[6, "many-to-many-relation"]], "Migration control summary": [[6, "migration-control-summary"]], "Migrations": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Model-less applications": [[6, "model-less-applications"]], "More on uploads": [[6, "more-on-uploads"]], "Multiple Tags objects": [[12, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "New style virtual fields (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Note on new DAL and adapters": [[6, "note-on-new-dal-and-adapters"]], "OAuth2 with Discord": [[12, "oauth2-with-discord"]], "OAuth2 with Facebook": [[12, "oauth2-with-facebook"]], "OAuth2 with Google": [[12, "oauth2-with-google"]], "OL": [[9, "ol"]], "OPTION": [[9, "option"]], "Old style virtual fields": [[6, "old-style-virtual-fields"]], "On return values": [[4, "on-return-values"]], "One to many relation": [[6, "one-to-many-relation"]], "Oracle": [[6, "oracle"]], "Other DAL constructor parameters": [[6, "other-dal-constructor-parameters"]], "Other operators": [[6, "other-operators"]], "Other validators": [[11, "other-validators"]], "P": [[9, "p"]], "PAM": [[12, "pam"]], "PRE": [[9, "pre"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Pluralize": [[10, "pluralize"]], "Prerequisites": [[1, "prerequisites"]], "Query, Set, Rows": [[6, "query-set-rows"]], "Range, set and equality validators": [[11, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Record versioning": [[6, "record-versioning"]], "Recursive selects": [[6, "recursive-selects"]], "Reference Fields": [[13, "reference-fields"]], "Rendering rows using represent": [[6, "rendering-rows-using-represent"]], "Replicated databases": [[6, "replicated-databases"]], "Reserved keywords": [[6, "reserved-keywords"]], "Resources": [[1, "resources"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Routes": [[4, "routes"]], "Run-time field and table modification": [[6, "run-time-field-and-table-modification"]], "SCRIPT": [[9, "script"]], "SELECT": [[9, "select"]], "SPAN": [[9, "span"]], "SQLite": [[6, "sqlite"]], "STYLE": [[9, "style"]], "Sample Action Button Class": [[13, "sample-action-button-class"]], "Searching and filtering": [[13, "searching-and-filtering"]], "Self-Reference and aliases": [[6, "self-reference-and-aliases"]], "Server-side DOM": [[9, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Setup procedures": [[2, "setup-procedures"]], "Sharing sessions": [[5, "sharing-sessions"]], "Shortcuts": [[6, "shortcuts"]], "Simple conversion examples": [[14, "simple-conversion-examples"]], "Sorted options": [[11, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[11, "special-type-validators"]], "Standard widgets": [[11, "standard-widgets"]], "Static web pages": [[4, "static-web-pages"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Supported platforms and prerequisites": [[2, "supported-platforms-and-prerequisites"]], "TABLE, TR, TD": [[9, "table-tr-td"]], "TAG": [[9, "tag"]], "TBODY": [[9, "tbody"]], "TEXTAREA": [[9, "textarea"]], "TH": [[9, "th"]], "THEAD": [[9, "thead"]], "TITLE": [[9, "title"]], "TT": [[9, "tt"]], "Table constructor": [[6, "table-constructor"]], "Table inheritance": [[6, "table-inheritance"]], "Table methods": [[6, "table-methods"]], "Tagging records": [[6, "tagging-records"]], "Tags and Permissions": [[12, "tags-and-permissions"]], "Template Functions": [[8, "template-functions"]], "Templates": [[4, "templates"]], "Text format validators": [[11, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL fixture": [[5, "the-dal-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Dashboard": [[3, "the-dashboard"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Flash fixture": [[5, "the-flash-fixture"]], "The Form constructor": [[11, "the-form-constructor"]], "The Google group": [[1, "the-google-group"]], "The Grid object": [[13, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[15, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[15, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The main Web page": [[3, "the-main-web-page"]], "The request object": [[4, "the-request-object"]], "The scheduler": [[15, "the-scheduler"]], "The sidecar parameter": [[11, "the-sidecar-parameter"]], "The sources on GitHub": [[1, "the-sources-on-github"]], "This manual": [[1, "this-manual"]], "Timing queries": [[6, "timing-queries"]], "Tutorials and video": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[12, "two-factor-authentication"]], "UL": [[9, "ul"]], "URL": [[9, "url"]], "Understanding the design": [[2, "understanding-the-design"]], "Update the translation files": [[10, "update-the-translation-files"]], "Upgrading": [[2, "upgrading"]], "User Impersonation": [[12, "user-impersonation"]], "Using Auth inside actions": [[12, "using-auth-inside-actions"]], "Using DAL without define tables": [[6, "using-dal-without-define-tables"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[9, "using-inject"]], "Using an iterator-based select for lower memory use": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "Using callable parameters": [[13, "using-callable-parameters"]], "Using templates": [[13, "using-templates"]], "Using the DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Validation functions": [[11, "validation-functions"]], "Virtual fields": [[6, "virtual-fields"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "What is py4web?": [[0, "what-is-py4web"]], "Widgets": [[11, "widgets"]], "XML": [[9, "xml"]], "YATL Template Language": [[8, "yatl-template-language"]], "YATL helpers": [[9, "yatl-helpers"]], "_lastsql": [[6, "lastsql"]], "as_dict and as_list": [[6, "as-dict-and-as-list"]], "belongs": [[6, "belongs"]], "block and super": [[8, "block-and-super"]], "cache, cacheable": [[6, "cache-cacheable"]], "call command option": [[2, "call-command-option"]], "callbacks on record insert, delete and update": [[6, "callbacks-on-record-insert-delete-and-update"]], "case": [[6, "case"]], "children": [[9, "children"]], "commit and rollback": [[6, "commit-and-rollback"]], "count, isempty, delete, update": [[6, "count-isempty-delete-update"]], "def...return": [[8, "def-return"]], "define_table signature": [[6, "define-table-signature"]], "distinct": [[6, "distinct"]], "drop": [[6, "drop"]], "executesql": [[6, "executesql"]], "extend and include": [[8, "extend-and-include"]], "filter_in and filter_out": [[6, "filter-in-and-filter-out"]], "find": [[9, "find"]], "find, exclude, sort": [[6, "find-exclude-sort"]], "first and last": [[6, "first-and-last"]], "for...in": [[8, "for-in"]], "format: Record representation": [[6, "format-record-representation"]], "groupby, having": [[6, "groupby-having"]], "htmx": [[15, "htmx"]], "htmx usage in Form": [[15, "htmx-usage-in-form"]], "htmx usage in Grid": [[15, "htmx-usage-in-grid"]], "id: Notes about the primary key": [[6, "id-notes-about-the-primary-key"]], "if...elif...else": [[8, "if-elif-else"]], "insert": [[6, "insert"]], "join, left": [[6, "join-left"]], "like, ilike, regexp, startswith, endswith, contains, upper, lower": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "limitby": [[6, "limitby"]], "list: and contains": [[6, "list-type-and-contains"]], "migrate, fake_migrate": [[6, "migrate-fake-migrate"]], "new_app command option": [[2, "new-app-command-option"]], "on_define": [[6, "on-define"]], "orderby": [[6, "orderby"]], "orderby, groupby, limitby, distinct, having, orderby_on_limitby, join, left, cache": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "plural and singular": [[6, "plural-and-singular"]], "polymodel": [[6, "polymodel"]], "primarykey: Support for legacy tables": [[6, "primarykey-support-for-legacy-tables"]], "py4web and asyncio": [[15, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: the reference Manual": [[16, "py4web-the-reference-manual"]], "redefine": [[6, "redefine"]], "rname: Real name": [[6, "rname-real-name"]], "run command option": [[2, "run-command-option"]], "select command": [[6, "select-command"]], "sequence_name": [[6, "sequence-name"]], "set_password command option": [[2, "set-password-command-option"]], "setup command option": [[2, "setup-command-option"]], "shell command option": [[2, "shell-command-option"]], "string.format": [[15, "string-format"]], "sum, avg, min, max and len": [[6, "sum-avg-min-max-and-len"]], "table_class": [[6, "table-class"]], "trigger_name": [[6, "trigger-name"]], "try...except...else...finally": [[8, "try-except-else-finally"]], "two_factor_required": [[12, "two-factor-required"]], "two_factor_send": [[12, "two-factor-send"]], "two_factor_tries": [[12, "two-factor-tries"]], "update_or_insert": [[6, "update-or-insert"]], "update_record": [[6, "update-record"]], "utils.js": [[15, "utils-js"]], "validate_and_insert, validate_and_update": [[6, "validate-and-insert-validate-and-update"]], "version command option": [[2, "version-command-option"]], "while": [[8, "while"]], "year, month, day, hour, minutes, seconds": [[6, "year-month-day-hour-minutes-seconds"]], "\u201cAccessing OS files\u201d example": [[14, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[14, "form-and-flash-example"]], "\u201cHello world\u201d example": [[14, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[14, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[14, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[14, "returning-args-example"]], "\u201cReturning variables\u201d example": [[14, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[14, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[14, "view-example"]], "\u201cauth\u201d example": [[14, "auth-example"]], "\u201cgrid\u201d example": [[14, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "0": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "00": 7, "01": 7, "02": [6, 11], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "06": 11, "08": 11, "0x4e86": 11, "0x7fa533ff7640": 9, "1": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15], "10": [2, 6, 7, 8, 9, 10, 11, 12, 15], "100": [2, 6, 7, 8, 11, 15], "1000": [5, 6, 11, 15], "1000m": 15, "100px": 15, "1024": 11, "1048576": 11, "10px": 13, "11": [6, 11], "111111": 15, "11211": 5, "12": 11, "120": 6, "123": [9, 11], "123218": 7, "123456": 11, "125": 6, "127": [2, 3, 5, 11, 13], "13": [5, 6, 11], "132635": 7, "14": [8, 11, 13], "15": [6, 11, 12, 13], "16": 11, "168": 11, "169": 11, "16px": 8, "172": [6, 11], "174": 6, "178974": 7, "19": [6, 7, 11], "192": [6, 11], "1963": 11, "198": 6, "199": 11, "19t05": 7, "1e100": 6, "1kb": 11, "1l": 6, "1mb": 11, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "20": [2, 7, 10, 11], "200": [7, 11, 14, 15], "2001": 11, "2002": 11, "2005": 6, "2007": 0, "2008": 11, "2009": 11, "200m": 15, "200x200": 11, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 12, "227": 6, "239": 6, "2396": 11, "24": 11, "254": 11, "255": 11, "256": 6, "2616": 11, "28": 11, "2em": 15, "2px": 15, "3": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "30": [2, 6, 8, 11], "301": 14, "309903": 7, "31": [6, 7, 11], "32": [6, 11], "322494": 7, "32768": 6, "33": [6, 11], "34": 7, "3490": 11, "3492": 11, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 15, "4": [2, 5, 6, 7, 8, 11, 13], "40": [2, 9, 15], "400": [5, 14], "404": [5, 11, 12], "405515": 7, "43": 6, "45": [8, 11], "451907": 7, "453020": 7, "456": 11, "466030": 7, "4e": 11, "5": [5, 6, 7, 8, 10, 11, 12, 13, 15], "50": [2, 7], "500": 15, "500m": 15, "512": 6, "53": 11, "54": 8, "559918": 7, "58": 8, "59": 11, "6": [5, 6, 7, 11, 12, 14], "60": [5, 6], "63": [6, 11], "6379": 5, "64": [6, 8, 15], "65": 6, "6to4": 11, "7": [2, 7, 8, 11, 14], "70": 7, "74": 6, "75": 7, "8": [2, 6, 7, 11], "80": [7, 11], "8000": [2, 3, 4, 11, 13], "86": 11, "8601": 7, "8em": [8, 15], "9": [6, 7, 11, 13, 14], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "AND": 6, "AS": 6, "And": [1, 4, 5, 6, 11, 12, 13, 15], "As": [4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "At": [6, 8], "Be": [5, 6, 8], "But": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15], "By": [2, 4, 5, 6, 11, 12, 14], "For": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15], "IF": 6, "IN": 6, "INTO": 6, "IT": 10, "If": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "In": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15], "Its": [0, 2, 6, 11, 13], "NO": 6, "NOT": [6, 11, 12], "No": [2, 6], "Not": 6, "ON": [6, 11], "OR": [6, 9, 11, 13], "Of": 8, "On": [2, 6, 11, 12, 15], "One": [2, 4, 11, 12], "Or": 11, "That": [4, 6, 14], "The": [0, 2, 8, 9, 10, 12, 14, 16], "Their": [5, 6, 14], "Then": [4, 5, 6, 9, 11, 12, 13, 15], "There": [1, 2, 5, 6, 8, 11, 12, 13, 15], "These": [0, 5, 6, 9, 11, 13], "To": [2, 4, 6, 8, 9, 10, 11, 12, 13, 15], "With": [2, 6, 11, 12, 15], "_": [2, 11, 15], "__": 4, "__file__": [5, 7, 13], "__init__": [2, 4, 5, 6, 7, 13, 14, 15], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 9], "_action": 9, "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_upd": 6, "_alt": 9, "_and": 11, "_autocomplet": 15, "_autocomplete_search_field": 15, "_before_": 6, "_before_delet": 6, "_before_insert": 6, "_before_upd": 6, "_bgcolor": 9, "_c": 9, "_check": 9, "_class": [5, 9, 11, 15], "_col": 9, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_data": 9, "_db": 6, "_dbname": 6, "_default": [2, 4], "_delet": 6, "_disabl": 9, "_document": [1, 3], "_enable_record_vers": 6, "_extra": 6, "_format": 6, "_href": [5, 8, 9, 11, 13], "_hx": 15, "_id": [6, 9, 11, 15], "_insert": 6, "_listifi": 6, "_method": 9, "_name": [6, 9, 11, 15], "_next_url": 12, "_nonreserv": 6, "_onclick": 11, "_placehold": [11, 15], "_row": 9, "_scaffold": [5, 8, 9, 11, 12, 13, 14, 16], "_search": 15, "_select": [6, 9], "_sesson": 5, "_src": 9, "_style": [11, 15], "_tabl": [6, 11, 15], "_tablenam": 6, "_tag": 12, "_time": 6, "_titl": [11, 15], "_type": [6, 9, 11, 15], "_u": 9, "_updat": 6, "_uri": 6, "_valu": [9, 11, 15], "_xmln": 9, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaaa": 8, "ab": [9, 11], "abbrevi": 11, "abc": [9, 11], "abil": 14, "abl": [1, 2, 5, 6, 11], "abort": [4, 6], "about": [0, 7, 12, 13, 14, 15, 16], "abov": [4, 5, 6, 7, 8, 11, 12, 13], "abracadabra": 2, "absent": 2, "absolut": [2, 6, 14], "abspath": 4, "abstract": [5, 14, 16], "accdesc": 6, "accept": [1, 2, 4, 5, 6, 9, 10, 11, 14, 15], "access": [0, 2, 4, 5, 6, 9, 11, 12, 15], "accnum": 6, "accomplish": [5, 6, 12, 14], "accord": [6, 8], "accordingli": 8, "account": [2, 6], "acctyp": 6, "achiev": [5, 6, 14], "acknowledg": 16, "acquir": 6, "across": [6, 8], "act": [6, 9, 11], "action": [4, 5, 6, 9, 11, 14, 15, 16], "action_button": 13, "action_token": [5, 12], "activ": [2, 6, 12], "actual": [2, 5, 6, 8, 13], "ad": [0, 2, 5, 10, 11, 12, 13, 15], "adapt": [12, 15], "adapter_arg": 6, "add": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "addit": [2, 4, 5, 6, 7, 8, 11, 13], "addition": 13, "additional_class": 13, "additional_styl": 13, "address": [2, 6, 11, 12], "admin": [0, 6, 14], "administr": 2, "advanc": [2, 12, 13, 16], "advantag": [2, 6, 8, 15], "advis": [6, 13], "affect": 6, "after": [2, 3, 5, 6, 8, 11, 12, 13, 15], "after_connect": 6, "after_delet": 6, "after_insert": 6, "after_upd": 6, "aftermath": 6, "ag": 6, "again": [2, 3, 4, 5, 6, 11, 13, 15], "against": [6, 7, 9, 11, 13], "aggreg": 6, "agnost": 4, "aid": 6, "aim": 0, "ajax": [8, 13, 15], "aka": 1, "alert": [5, 8, 9, 11, 14], "alex": 6, "alfaro": [0, 1], "alg": 11, "algorithm": [5, 11], "alia": [6, 11], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "alloc": 11, "allow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "allowed_act": 12, "allowed_attribut": 9, "allowed_overrid": 11, "allowed_pattern": 7, "allowed_schem": 11, "almost": 5, "along": [2, 4, 9, 11, 15], "alphabet": 11, "alphanumer": 11, "alreadi": [2, 3, 4, 5, 6, 9, 11, 12, 13], "also": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "alt": 9, "alter": 6, "altern": [2, 5, 6, 8, 11, 15], "although": [2, 6, 8, 11], "alwai": [0, 2, 4, 5, 6, 8, 11, 15], "am": [11, 15], "amazon": 6, "ambigu": [4, 6], "among": [6, 11], "amount": 6, "an": [0, 1, 2, 3, 5, 8, 9, 11, 12, 13, 14, 15, 16], "analogi": 14, "ancestor": 9, "anchor": 15, "andrew": 1, "angl": 8, "angular": [0, 15], "ani": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "annoi": 2, "anonym": [6, 8, 11], "anoth": [4, 5, 8, 10, 11, 12], "anotherpath": 5, "ansi": 6, "answer": 1, "anyhow": 2, "anyobj": 6, "anyth": 4, "anywai": 6, "anywher": [8, 14], "api": [0, 6, 7, 9, 11, 12, 14, 15], "api_vers": 7, "app": [0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "app1": 5, "app1_sess": 5, "app2": 5, "app_fold": 14, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appar": 6, "appear": [6, 11, 13], "append": [5, 6, 9, 11, 13, 15], "append_id": 13, "appl": 11, "appli": [0, 5, 6, 11, 12, 13, 15], "applic": [0, 2, 3, 4, 5, 8, 11, 12, 13, 14, 15], "appnam": [2, 5, 12, 14], "appname_sess": 5, "approach": [6, 14], "appropri": [6, 11], "approv": 12, "apps_fold": 2, "apt": 12, "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "arbitrari": [4, 6, 12], "archiv": 6, "archive_db": 6, "archive_nam": 6, "aren": 6, "arg": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 9, 11, 12, 14], "arithmet": 11, "around": [1, 6, 14], "arrai": [9, 15], "arrang": [6, 11], "arriv": [0, 6], "as_ordered_dict": 6, "ascii": 11, "asid": [6, 15], "ask": [2, 5, 6], "assert": 6, "asset": 2, "assign": [6, 8, 11, 12, 14, 15], "assist": 1, "associ": [6, 10, 11, 12], "assum": [2, 5, 6, 7, 10, 11, 14], "async": 15, "asyncio": 16, "attach": [5, 6, 12, 14], "attack": [5, 9], "attempt": [11, 12], "attent": 6, "attr": [11, 13, 15], "attribut": [4, 5, 9, 11, 13, 14, 15], "attributes_plugin": 15, "attributespluginhtmx": 15, "aug": 11, "august": 11, "auth": [0, 2, 4, 6, 8, 9, 15, 16], "auth_group": 12, "auth_plugin": 12, "auth_us": [5, 6, 12], "auth_user_tag_group": [6, 12], "auth_user_tagged_group": 12, "authent": [5, 6, 13, 16], "author": [5, 6, 7, 16], "auto": [6, 13], "auto_import": 6, "auto_process": [13, 15], "autocomplete_queri": 15, "autodelet": 6, "autogener": 6, "automat": [2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "avail": [1, 2, 6, 8, 9, 12, 14, 15], "averag": 6, "avoid": [0, 1, 2, 5, 6, 8, 11], "awai": 6, "awar": 6, "awesom": [8, 13], "axel": 0, "axolotl": 0, "b": [5, 6, 8, 9, 11, 14, 15], "back": [5, 6, 11], "backend": 6, "background": [2, 4, 11, 15], "backport": 6, "backslash": 4, "backup": [2, 6, 11], "backward": [0, 6, 11], "bad_dai": 6, "bail": 6, "banana": 11, "bar": [8, 13], "barrier": 0, "base": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 15], "base64": [6, 8, 15], "base_dn": 12, "baseadapt": 6, "bash": 2, "basic": [0, 1, 2, 5, 6, 15, 16], "bat": 2, "batman": [7, 11, 13], "battl": 0, "beaslei": 0, "becaus": [0, 2, 4, 5, 6, 8, 9, 10, 11, 13, 15], "becom": [11, 15], "bed": 10, "been": [0, 2, 5, 6, 8, 11], "befor": [1, 2, 5, 6, 8, 9, 11, 12, 13], "before_delet": 6, "before_insert": 6, "before_upd": 6, "begin": [8, 11, 12, 13], "beginn": 2, "behav": [6, 13], "behavior": [4, 6, 9, 11, 14, 15], "behaviour": [2, 6, 11, 13], "being": [1, 5, 6, 7, 8, 11, 15], "believ": [0, 5], "belong": [12, 14], "below": [5, 6, 7, 11, 13], "benefit": [6, 15], "best": [1, 2, 5, 6, 10, 13], "better": [0, 1, 2, 4, 6, 13, 14, 15], "between": [5, 6, 9, 11, 14], "beyond": 11, "bgcolor": 9, "big": [6, 14], "bigint": 6, "bigint_id": 6, "bin": [1, 2], "binari": 6, "bind": 15, "birthplac": 6, "bit": 11, "bitbucket": 1, "black": [8, 11], "blank": [11, 13], "blink": 15, "blob": 6, "block": [9, 12, 15], "blockquot": 9, "blog": [1, 6, 9], "blog_post": 6, "blue": [4, 6, 11, 14], "bmp": 11, "boat": 6, "bob": 6, "bodi": [4, 8, 12, 13, 15], "boilerpl": 5, "bold": 9, "book": [1, 6], "boolean": [6, 13], "boost": [6, 8], "bootstrap": 13, "border": 15, "born": 6, "botaro": 0, "both": [1, 2, 4, 5, 6, 8, 11, 14], "bottl": [0, 4, 5, 8, 14, 15], "bottle_app": 2, "bottlepi": [4, 5], "bottom": 11, "boundari": 11, "box": [0, 6, 11], "br": [8, 9], "bracket": [0, 8, 11], "branch": [1, 2], "break": [2, 6, 11], "breez": 1, "briefli": 2, "broke": 0, "broken": [0, 11], "brows": [2, 3, 13, 15], "browser": [1, 2, 3, 5, 7, 8, 13, 15], "bruce": [7, 13], "bsd": 1, "buffer": 6, "bug": [1, 3, 6], "build": [1, 2, 4, 5, 6, 9, 11, 13, 15], "builder": 15, "built": [0, 1, 4, 6, 8, 11, 13, 15, 16], "bulk_insert": 6, "bulma": [11, 13, 15], "bunch": 2, "buse": 15, "button": [3, 4, 5, 9, 11, 15, 16], "bypass": [11, 12, 13], "byte": [6, 11], "bytecod": 8, "c": [1, 2, 3, 5, 6, 8, 9, 11, 14], "ca": 11, "cach": [0, 2, 4, 11, 16], "cache_db_select": 6, "calcul": 6, "calendar": 13, "call": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "callabl": [9, 11], "callback": [12, 15], "callback_url": 12, "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "cancel": [11, 15], "cancel_attr": 15, "cane": [10, 15], "cani": [10, 15], "cannot": [2, 5, 6, 8, 9, 11, 15], "capabl": [0, 13, 15], "capit": 15, "caputur": 15, "car": 6, "card": 6, "care": [5, 6, 8, 14, 15], "carl": 6, "carri": 14, "carrol": 0, "cart": 5, "case": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15], "case_sensit": 6, "cassio": 0, "catch": 6, "caus": [6, 11], "caveat": [6, 8, 14, 16], "cd": 2, "cdnj": [8, 13], "celeri": 16, "center": [5, 8], "centuri": 11, "ceo": [7, 13], "certain": [6, 8, 11, 13], "certif": 2, "cf": 4, "cgi": 11, "chair": 6, "challeng": 12, "chang": [0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "change_email": 12, "change_password": [8, 12], "changed_fil": 4, "channel": 1, "chapter": [1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14], "char": [6, 12], "charact": [4, 6, 9, 11], "charg": [2, 14], "chat": 1, "check": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14], "check_": 15, "check_nonnegative_quant": 11, "check_reserv": 6, "checkbox": [8, 9], "checkboxwidget": 11, "cherri": 11, "chicago": 6, "choic": [1, 4, 11, 13], "choos": [1, 11, 12], "choosen": 6, "chose": 4, "chosen": 6, "chrome": [3, 15], "circular": 6, "circumst": 5, "cit0801": 7, "cit0802": 7, "cit1601": 15, "cite": [9, 11], "clark": [7, 13], "clash": 11, "class": [5, 6, 8, 9, 11, 12, 14, 15], "class_inner_except": 15, "class_styl": 13, "claudia": 6, "claus": [6, 8], "clean": [1, 9], "cleaner": 5, "cleanup": 0, "clear": [6, 11], "clearli": [6, 15], "clever": 11, "cli": [1, 2], "click": [3, 6, 9, 11, 13, 15], "clickabl": 13, "client": [0, 7, 11, 12, 15], "client_id": 12, "client_ip": 5, "client_secret": 12, "clientsid": 15, "clock": 11, "clone": [2, 4, 6, 15], "close": [5, 6, 8, 9], "cloudflar": [8, 13], "cmd": 2, "cn": 12, "co": [6, 11], "coa": 6, "code": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "col": 9, "collaps": [7, 9], "collat": 6, "collect": [0, 2, 14], "colnam": 6, "colon": 8, "color": [4, 6, 8, 9, 11, 15], "colspan": 9, "column": [6, 16], "com": [0, 1, 3, 4, 8, 9, 12, 13, 15], "combin": [5, 9, 11, 13], "come": [0, 4, 5, 6, 8, 11, 12, 13, 14, 15], "comma": [2, 6, 15], "command": [3, 4, 8, 9, 16], "comment": [6, 9], "commit": [4, 5, 7, 13, 14, 15], "common": [2, 3, 4, 5, 8, 11, 12, 14, 15], "common_filt": 6, "commun": [0, 5, 6], "compact": 6, "compani": 13, "compar": [0, 6, 14], "comparison": [6, 11], "compat": [0, 1, 6, 9, 11], "competitor": 0, "compil": [4, 8, 9, 11], "compiled_css": 4, "complain": 6, "complet": [0, 6, 8, 9, 11, 12, 15], "complex": [1, 2, 4, 5, 6, 8, 9, 12, 14, 15], "compliant": [6, 15], "complic": 5, "compon": [0, 3, 4, 5, 8, 9, 11, 12, 15], "component_1": 15, "compos": [2, 5], "compound": 9, "compress": [3, 4], "compris": 3, "compromis": 0, "comput": [1, 15, 16], "concaten": [6, 9], "conceiv": 6, "concept": [0, 12], "concern": 6, "concurr": [0, 2, 6, 11, 15], "cond": 5, "condit": [6, 8, 11, 16], "condition": 6, "config": [2, 4], "configur": [1, 2, 5, 6, 11, 12, 14, 15], "confirm": [2, 11, 12, 13, 15], "conflict": [0, 2, 4, 6], "confus": 6, "conjunct": 6, "conn": 5, "connect": [3, 4, 5, 11, 14], "connectionpool": 6, "consequ": [6, 11, 15], "consid": [5, 6, 8, 9, 11, 13, 14], "consider": 6, "consist": [5, 6, 8, 13, 14], "consol": [2, 9, 12, 15], "constant": 11, "constrain": 14, "constraint": [0, 6], "construct": [4, 6], "constructor": [5, 9, 12, 16], "consult": 6, "contain": [0, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "contect": 8, "content": [2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "context": [3, 5, 6, 8], "contextlib": 6, "continu": [6, 8, 15], "contribut": [0, 16], "control": [2, 4, 5, 8, 9, 11, 12, 13, 14, 15], "conveni": [6, 16], "convent": [4, 6, 8, 11, 14], "convers": [11, 16], "convert": [1, 4, 6, 9, 11], "cooki": [0, 4, 6, 11, 15], "copi": [1, 2, 3, 8, 9, 13, 16], "copyfileobj": 6, "core": [1, 2, 4, 5], "corei": 1, "corner": 13, "cornerston": 0, "correct": [1, 6, 12], "correctli": 11, "correspond": [2, 3, 4, 6, 9, 10, 11, 12, 13, 14], "corrupt": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 9, 11, 12, 14], "count": [5, 7, 12, 13, 15], "counter": [5, 6, 15], "counterpart": 4, "coupl": [13, 15], "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16], "create_th": 11, "created_bi": 6, "created_on": 6, "creation": [2, 6], "creativ": [11, 12], "credential_decod": 6, "criteria": [6, 11], "critic": 2, "cross": [5, 6, 9], "crossorigin": 8, "crt": [2, 6], "crud": [3, 11, 15], "cruz": 1, "crypt": 2, "csrf": [5, 11], "csrf_protect": 11, "csrf_session": 11, "css": [1, 4, 5, 8, 9, 11, 12, 13, 15], "csv": 14, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "current": [2, 5, 6, 8, 9, 12, 13, 14, 15], "current_record": 6, "cursor": [6, 15], "curt": 6, "custom": [0, 2, 4, 8, 14, 15, 16], "custom_qualifi": 6, "customiz": [0, 11, 13], "cx_oracl": 6, "cyclic": 6, "czech": 10, "d": [2, 7, 9, 11], "daemon": [2, 15], "dai": 11, "dal": [2, 4, 7, 11, 13, 15, 16], "dan": 0, "dancer": 12, "danger": 14, "dash": 11, "dashboard": [0, 2, 4, 6, 8, 11, 15, 16], "dashboard_mod": 2, "data": [0, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16], "data_label": 15, "databas": [0, 1, 3, 4, 7, 12, 13, 14, 15, 16], "datalist": 15, "date": [2, 6, 13], "datetim": [4, 5, 6, 7, 11, 15], "datetimewidget": 11, "daunt": 1, "db": [2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_folder": [5, 7, 13], "db_name": 6, "db_uid": 6, "dbadmin": 4, "dbio": 11, "dbo": 6, "dbset": 11, "dbstore": 5, "dc": 12, "dd": 11, "de": [0, 1, 6, 10], "deal": [1, 6, 15], "dealfaro": 0, "debounc": 15, "debug": [2, 4, 5, 6, 8], "debugg": [1, 14], "decid": [6, 11, 13], "decim": [4, 6, 11], "declar": [0, 4, 5, 6], "decod": 6, "decode_credenti": 6, "decor": [1, 4, 6, 14, 16], "dedic": [1, 4, 5, 9, 14], "def": [4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "default": [0, 2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15], "defer": [6, 15], "defin": [2, 4, 5, 8, 11, 12, 13, 14, 15], "define_t": [5, 7, 11, 12, 13, 14], "definit": [6, 7, 11, 13, 14], "degre": 6, "del": [6, 9], "delai": [6, 15], "deleg": 6, "delet": [2, 4, 7, 11, 13, 15], "delete_record": 6, "delimit": [0, 5, 6, 8, 14], "delta": 15, "demand": 6, "demo": [1, 2, 15], "deni": 7, "denorm": [6, 7], "depend": [0, 2, 3, 4, 5, 6, 8, 11, 13, 14], "deploi": 2, "deploy": 1, "deployment_tool": 2, "deprec": [6, 11, 15], "deriv": [6, 11], "desc": 13, "descend": 9, "describ": [2, 3, 4, 5, 6, 11], "descript": [6, 7, 11, 12, 13], "design": [0, 4, 6, 8, 12, 15, 16], "desir": [5, 8, 11, 12], "dest": [4, 6], "detail": [0, 1, 2, 5, 6, 7, 8, 9, 11, 13, 15], "detail_field": 11, "determin": [4, 5, 6, 8, 10, 11, 12, 13], "determinist": 5, "dev": 12, "develop": [0, 1, 4, 5, 6, 12, 13, 14, 15], "development_tool": 2, "devic": 8, "di": [0, 5], "diagram": 7, "dialect": 6, "dict": [4, 5, 6, 10, 11, 13, 14, 15], "dictionari": [4, 5, 9, 10, 14], "did": [0, 4, 6, 15], "differ": [0, 2, 5, 6, 8, 10, 11, 12, 13, 14, 15], "difficult": [2, 15], "digit": [4, 6, 11, 12], "dimens": 11, "dir": [2, 11, 15], "direct": [2, 5, 6, 8, 11], "directli": [1, 2, 4, 6, 7, 8, 9, 11, 12, 13, 15], "directori": 12, "dirnam": [5, 7, 13], "disabl": [6, 7, 9, 11, 13], "disallow": [6, 11], "discard": 6, "discord_client_id": 12, "discord_client_secret": 12, "discount": 6, "discounted_tot": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discov": 10, "discoveri": 2, "discrimin": 12, "discuss": [1, 3, 6, 8, 9, 11], "disk": [5, 6], "dismiss": [5, 14], "displai": [3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "distinct": [8, 11], "distributed_transaction_commit": 6, "ditch": 0, "div": [4, 5, 8, 11, 14, 15], "divis": [8, 9, 11], "divmod": 6, "django": [0, 1, 14], "do": [1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "do_connect": 6, "doc": 1, "dockerfil": 2, "doctor": 6, "doctyp": [8, 13], "document": [3, 5, 6, 8, 9, 11, 15], "doe": [0, 2, 5, 6, 8, 11, 12, 13, 14, 15], "doesn": [5, 6, 13], "dog": [10, 11, 15], "doh": 11, "dom": [8, 16], "domain": [11, 12], "don": [1, 2, 3, 4, 6, 8, 11, 12, 13], "done": [2, 6, 8, 11, 13, 14], "dot": 11, "doubl": [2, 6, 8], "doubt": 13, "down": [6, 11, 15], "downfal": 13, "download": [2, 11], "downsid": [6, 14], "dramat": 6, "driven": 0, "driver": 6, "driver_arg": 6, "drop": 11, "dropdown": [11, 13, 15], "dsn": 6, "dual": 11, "due": [6, 7, 11], "dummi": [6, 8], "dummyrespons": 8, "dump": [5, 6, 15], "dumpfil": 6, "duplic": 6, "durabl": 7, "dure": 13, "dynam": [6, 7, 8, 9, 11, 12, 16], "e": [2, 4, 5, 6, 7, 8, 9, 11, 12, 15], "each": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "earli": [5, 6], "earlier": 15, "easi": [0, 5, 6, 8, 9, 11], "easier": [0, 6, 7, 8], "easiest": [6, 12], "easili": [4, 5, 6, 8, 9, 11, 13], "ebook": 1, "echo": 4, "ecosystem": 15, "edg": 15, "edit": [0, 2, 3, 4, 8, 9, 11, 12, 13, 14, 15], "edit_sidecar": 15, "editor": [1, 8], "educ": 2, "effect": [3, 6, 11], "effici": [0, 1, 5, 6, 14], "effort": 1, "efg": 9, "either": [6, 9, 11], "el": 9, "element": [6, 8, 9, 11, 13, 15], "els": [2, 6, 11, 12, 13, 14, 15], "elt": 15, "emac": 8, "email": [2, 5, 8, 11, 12, 14], "emails_onvalid": 11, "emb": 9, "embed": [8, 11], "emerg": 15, "emphas": 9, "employe": [5, 13], "empti": [2, 4, 6, 11, 15], "empty_regex": 11, "en": [5, 7], "enabl": [1, 5, 6, 7, 9, 12, 14, 15], "enable_record_vers": 6, "encapsul": [8, 9], "enclos": [6, 8], "encod": [5, 6, 11, 15], "encrypt": [0, 2, 5], "end": [4, 6, 8, 9, 11, 12, 13, 14, 15], "endpoint": [12, 15], "enforc": [5, 6, 11, 14], "engin": [6, 11], "english": 5, "enhanc": 6, "enough": [11, 12, 13], "enqueu": 15, "enqueue_run": 15, "ensur": [6, 11], "enter": [4, 5, 9, 11, 12], "enterpris": [1, 12], "entir": [6, 8, 14, 15], "entiti": 6, "entity_quot": 6, "entri": [0, 6, 7, 10, 11, 13, 14], "entropi": 11, "env": [1, 14], "envelop": 15, "environ": [0, 1, 4, 5, 6, 14], "epub": 1, "eq": 7, "equal": [6, 7, 9, 12, 15], "equip": 5, "equival": [4, 5, 6, 9, 11, 14], "errlog": 5, "error": [1, 2, 3, 5, 6, 7, 8, 9, 11, 14, 15], "error_messag": 11, "errorlog": 2, "escap": [6, 8, 9], "especi": [0, 2, 5, 6, 11, 12], "esprima": 4, "establish": [6, 14], "etc": [4, 5, 6, 7, 10, 14], "eval": 15, "evalu": [5, 6, 7, 8, 11, 15], "even": [1, 4, 5, 6, 8, 9, 11, 13, 14, 15], "event": [2, 6, 15], "event_tim": 6, "eventu": 5, "ever": 6, "everi": [0, 2, 4, 5, 6, 12, 13, 14, 15], "everyon": [0, 1], "everyth": [2, 14, 15], "evolut": 0, "ex": 2, "exact": 14, "exactli": [5, 6, 8], "exampl": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 16], "excel": [1, 13], "except": [2, 4, 5, 6, 9, 11, 12, 15], "excerpt": 8, "exclud": 11, "exclus": [0, 5, 6, 11, 12], "execut": [1, 2, 5, 6, 8, 9, 11, 14, 15], "exercis": [5, 12], "exist": [2, 5, 6, 11, 12, 13, 15], "exit": [2, 5], "exp": [4, 6], "expand": [1, 3], "expect": [2, 4, 5, 6, 9, 11, 14], "experi": [1, 11, 12], "experienc": 0, "experiment": [2, 5], "expir": [5, 6], "explain": [4, 5, 6, 11, 13], "explanatori": 6, "explicit": [0, 2, 4, 5, 6, 11, 12, 15], "explicitli": [0, 2, 5, 6, 8, 9, 11], "explict": 6, "explor": 3, "export": 16, "export_to_csv_fil": 6, "expos": [0, 3, 4, 5, 6, 7, 12], "express": [4, 7, 8, 9, 10, 11, 13, 15], "extend": [0, 5, 6, 11, 12, 14, 15], "extens": [3, 6, 11, 14], "extern": [2, 6], "extra": [5, 6, 11, 12], "extra_field": 5, "extract": [6, 11, 15], "f": [6, 12, 13, 14, 15], "fa": 13, "face": [1, 6], "facebook": [0, 5], "facilit": 4, "fact": [4, 5, 6, 14], "factori": [6, 9], "fail": [3, 6, 8, 11, 15], "failur": [4, 11, 15], "fake": 6, "fake_migrate_al": 6, "fall": 11, "fals": [2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "famou": 1, "fanci": 15, "far": [6, 15], "fast": [0, 4, 15], "faster": [0, 6, 8, 14], "father": 6, "father_id": 6, "favorite_color": 5, "fb00": 11, "fdb": 6, "fe80": 11, "feasibl": [2, 11], "featur": [0, 2, 4, 7, 8, 14, 16], "februari": 5, "feed": 6, "fetch": [14, 15], "fetchon": 6, "few": [6, 8, 12, 15], "ff00": 11, "fid": 6, "field": [2, 4, 5, 7, 9, 12, 14, 15, 16], "field1": 6, "field2": 6, "field3": 6, "field_id": 13, "fieldnam": [6, 15], "fieldstorag": 11, "fifth": 13, "file": [0, 1, 2, 3, 5, 6, 8, 9, 12, 13, 15, 16], "file_cont": [6, 15], "file_nam": [6, 15], "file_path": 14, "filenam": [2, 4, 5, 6, 11], "filep": 4, "filepath": 4, "filesystem": [0, 4, 5, 6], "fileuploadwidget": 11, "fill": [11, 15], "filter": [2, 4, 7, 11, 12], "filter_in": 11, "filter_out": 13, "final": [1, 2, 4, 6, 10, 13], "find": [1, 2, 4, 8, 10, 11, 12, 13, 15], "find_by_tag": 12, "find_match": 10, "findal": 11, "fine": [2, 12, 13], "fire": 6, "firebird": 6, "firebird_embed": 6, "firebirdadapt": 6, "firebirdembed": 6, "firebirdembeddedadapt": 6, "firefox": [3, 15], "firfox": 15, "first": [0, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16], "first_nam": [4, 5, 12, 13], "first_onli": 9, "first_row": 6, "first_row_dict": 6, "fist": 11, "fit": 11, "five": 6, "fix": [5, 14], "fixtur": [0, 2, 4, 6, 9, 12, 14, 16], "fk_field": 15, "fk_tabl": 15, "fkdaog": 8, "flag": 11, "flash": [8, 11, 15, 16], "flask": [0, 14], "flexibl": [0, 6, 12, 13, 15], "flight": 7, "float": [4, 11], "flow": 12, "fn": 2, "focu": 15, "fold": 6, "folder": [1, 2, 3, 4, 5, 7, 10, 11, 13, 14], "follow": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "font": [8, 11, 13], "foo": 13, "foot": 12, "footer": [8, 9], "forbid": 11, "forbidden": 11, "forc": [2, 6, 11, 12], "foreground": 11, "foreign": [1, 13], "foreign_key_check": 6, "forgeri": 5, "forget": [6, 13], "form": [0, 5, 6, 7, 10, 12, 13, 16], "form_bas": 11, "form_custom_widget": 11, "form_exampl": 11, "form_minim": 11, "form_nam": 11, "form_upload": 11, "form_widget": 11, "format": [4, 5, 7, 9, 10, 12, 13], "formatt": 15, "formdata": 7, "former": 6, "formstyl": [11, 13, 15], "formstylebootstrap4": 11, "formstylebulma": [11, 13, 15], "formstyledefault": [11, 13], "formstylefactori": 15, "forum": 3, "forward": [1, 3], "found": [2, 6, 11], "four": [2, 6], "fourth": 11, "fp": 5, "fr": 10, "framework": [0, 1, 2, 4, 5, 11, 12, 13, 14, 15], "free": [1, 5, 6, 12], "freetext": 15, "frequent": [1, 6, 11], "friendli": [0, 5, 8], "from": [0, 1, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16], "from_address": 12, "front": [0, 8, 11, 15], "frontend": 15, "fsstorag": 5, "ftp": 11, "full": [2, 4, 6, 8, 11, 13, 15], "fulli": [1, 4, 5, 6, 11], "fullnam": 6, "func": [2, 5], "function": [0, 2, 4, 5, 6, 7, 9, 13, 14, 15], "functool": 15, "furnitur": 5, "further": 12, "futur": [5, 14, 15], "g": [1, 2, 6, 9, 11], "gain": 2, "gather": 13, "gavgavian": 1, "gender": 6, "gener": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "german": 10, "get": [1, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16], "get_cooki": 15, "get_us": [4, 5, 12, 14], "get_var": [7, 14], "getvalu": 6, "gevent": [1, 2], "geventw": 2, "geventwebsocketserv": 2, "gia": 5, "gib": 6, "gif": 11, "git": [1, 2], "github": [2, 3, 4, 6, 13], "gitlat": 1, "give": [0, 2, 4, 5, 6, 8, 11, 12, 13], "given": [2, 5, 6, 8, 11, 15], "global": [0, 5, 6, 8, 12, 14, 15], "go": [1, 2, 4, 6, 8, 13, 15], "goal": 0, "goe": [6, 11], "good": [2, 3, 11], "googl": [0, 3, 5, 8, 11, 13], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gotcha": 16, "gotta": 8, "granular": 6, "granulari": 11, "graphql": 7, "great": 15, "greater": 7, "greedi": 4, "green": [4, 6, 11, 14], "grid": [0, 16], "grid_class_styl": 13, "grid_tutori": 13, "gridactionbutton": 13, "gridclassstyl": 13, "gridclassstylebulma": 13, "group": [0, 2, 3, 5, 12, 14], "group_nam": [5, 12], "groupbi": 11, "grow": [0, 6, 15], "gt": [7, 9], "guarante": [5, 6, 8, 14, 15], "guid": 2, "guidelin": 12, "gunicorn": 2, "gunicorngev": 2, "gz": 11, "h": [2, 11], "h1": [4, 8], "h2": [8, 11], "ha": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "habit": 2, "had": 6, "hamburg": 8, "hand": [2, 6, 11, 15], "handi": 6, "handl": [2, 4, 5, 6, 11, 13, 14, 15], "handler": 4, "hang": 1, "happen": [5, 6], "hard": 14, "hardcod": 5, "has_membership": 12, "hash": [2, 6, 11], "have": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "he": 6, "head": [4, 8, 11, 13], "header": [4, 5, 6, 8, 9, 13, 15], "height": [11, 13, 15], "hello": [4, 5, 6, 8, 9, 11, 12, 15], "help": [2, 6, 7, 8, 9, 11, 14, 16], "helper": [0, 4, 5, 6, 8, 11, 13, 14, 16], "henc": [0, 2, 4, 5, 6, 11], "her": 11, "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "hesit": 6, "hex": 11, "hh": 11, "hi": [6, 11, 15], "hidden": [6, 11, 15], "hidden_div": 15, "hidden_input": 15, "hide": [6, 13], "hierarch": 12, "high": [11, 12], "higher": 6, "highest": 11, "highli": [1, 13], "highlight": [1, 8], "hint": [13, 16], "histor": [0, 6], "histori": 11, "hit": [2, 6], "hmac": 11, "ho": 5, "hold": [6, 15], "home": 8, "host": [1, 2, 5, 11, 12], "hour": 11, "hous": 14, "housekeep": 6, "how": [0, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16], "howev": [6, 8, 9, 11, 13, 15], "href": [8, 9, 11, 12, 13], "hs256": 5, "html": [1, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15], "html5": 8, "htmx": [13, 16], "htmx_form": 15, "htmx_form_demo": 15, "htmx_grid": 15, "htmx_list": 15, "htmxautocompletewidget": 15, "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "httrespons": 5, "hulk": 11, "hundrand": 15, "hx": 15, "hypertext": 15, "hyphen": 9, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "i18n": 10, "ibm_db_dbi": 6, "icon": [8, 13], "id": [0, 1, 2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15], "id1": 6, "id2": 6, "id_field_nam": 13, "id_valu": 13, "idea": 6, "ident": [6, 7, 14], "identifi": [4, 5, 6, 9, 11], "idn": 11, "ie": 11, "ietf": 11, "ignor": [4, 6, 8, 9, 11, 13, 15], "ignore_attribute_plugin": 13, "ignore_common_filt": [6, 11], "ignore_field_cas": 6, "iip": 6, "illustr": [6, 8], "imag": [6, 8, 9, 11], "image_fil": 6, "imagin": [5, 6, 8, 15], "imap": 6, "imapadapt": 6, "imaplib": 6, "img": 4, "immedi": [2, 6, 13], "immens": 0, "implement": [4, 5, 6, 8, 11, 12, 14, 15], "impli": 7, "implic": 5, "implicit": 6, "implicitli": [6, 11], "import": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "import_and_sync": 6, "import_from_csv_fil": 6, "impos": 8, "impot": 11, "improv": [11, 12, 13], "includ": [0, 4, 5, 6, 7, 9, 11, 13, 14, 15], "include_action_button_text": 13, "include_path": 4, "inclus": [0, 11], "incom": 2, "incorrect": 8, "increas": 5, "increment": 6, "inde": [0, 5], "indent": 8, "independ": [0, 5, 6, 12], "index": [1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16], "indic": [4, 6, 11, 14, 15], "individu": [0, 2, 5, 6, 7, 8, 11], "ineffici": [5, 6], "infinit": 6, "info": [2, 4, 5, 6, 12], "inform": [1, 5, 6, 7, 11, 12, 14, 16], "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingr": 6, "ingredi": 4, "ingresadapt": 6, "ingresdbi": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "init": 13, "initi": [0, 2, 4, 5, 8, 11], "inject": [6, 8, 11, 16], "inlin": [9, 15], "inner": [5, 8, 15], "input": [2, 4, 5, 6, 8, 11, 15], "insensit": [6, 11], "insert": [3, 5, 7, 8, 11, 12, 13, 15], "insid": [1, 2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "inspector": 8, "inspir": 7, "instal": [0, 1, 3, 4, 5, 6, 12, 15, 16], "instanc": [6, 9, 11, 13, 15], "instanti": [6, 12, 13, 14], "instead": [1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "instruct": [2, 11], "int": [4, 6, 11, 12, 14], "int2ip": 6, "integ": [2, 4, 6, 7, 9, 11, 15], "integr": [0, 1, 8, 15], "intend": [6, 15], "intention": 11, "interact": [0, 5], "interchang": 12, "interfac": [0, 3, 5, 6, 13, 14, 15], "intermedi": 6, "intern": [0, 1, 4, 5, 6, 8, 12, 13], "internation": [0, 4, 5, 11, 14, 16], "interpret": [0, 6, 7, 9], "intersect": 6, "introduc": [0, 8], "introduct": [1, 2, 16], "intuit": 11, "invalid": [2, 5, 6, 11], "invert": [6, 11], "invis": 6, "involv": [6, 8, 13, 14], "io": [2, 6], "ip": [6, 11], "ip2int": 6, "ip_list": 12, "ipaddr": 6, "ipaddress": 12, "iptabl": 2, "ipv4": [6, 11], "ipv4address": 12, "ipv4network": 12, "ipv6": 11, "is_6to4": 11, "is_act": 6, "is_automat": 11, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_imperson": 12, "is_in_db": [6, 13], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_loc": 11, "is_localhost": 11, "is_multicast": 11, "is_not_empti": 6, "is_null_or": 13, "is_priv": 11, "is_publ": 6, "is_reserv": 11, "is_rout": 11, "is_set": 11, "is_teredo": 11, "is_tim": 6, "isdir": [7, 13], "isn": [11, 13], "iso": 7, "isol": 15, "issu": [0, 3, 6], "ital": 9, "italian": [5, 10], "item": [6, 7, 8, 9, 11], "itemize1": 8, "itemize2": 8, "iter": [8, 11], "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "itself": [2, 6, 11, 15], "iv": 6, "j": [0, 4, 5, 8, 10, 14, 16], "javascript": [1, 4, 7, 9, 15], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlite": 6, "jdbcsqliteadapt": 6, "jetbrain": 1, "jim": [0, 1, 13], "jinja2": 5, "job": [7, 11, 13], "john": [0, 6], "join": [4, 5, 7, 11, 12, 13, 14, 16], "jonathan": 6, "journalist": [7, 13], "journei": 1, "jpeg": 11, "jpg": 11, "jpsteil": 13, "jqueri": [9, 11, 15], "jsl": 15, "json": [0, 1, 2, 4, 5, 6, 7, 10, 11, 14, 15], "jump": 1, "junk": 6, "just": [1, 2, 4, 5, 6, 7, 8, 11, 13, 15], "jwt": 5, "jython": 6, "k": [5, 8, 14], "karg": 9, "kbyte": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14], "keep_valu": 11, "kei": [2, 4, 5, 7, 9, 10, 11, 12, 16], "keller": 0, "ken": 6, "kent": [7, 13], "kevin": 0, "keycod": 15, "keyup": 15, "keyword": [8, 9], "kfield": 15, "kill": 15, "kind": [0, 4], "kinterbasdb": 6, "know": [1, 2, 5, 6, 8, 13], "knowledg": 1, "known": [6, 8], "known_express": 10, "ktabl": 15, "kwarg": [6, 15], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 11], "label": [6, 7, 8, 11, 13, 14, 15], "lack": [6, 11, 14], "lambda": [5, 6, 9, 11, 13, 15], "languag": [0, 1, 4, 5, 10, 14, 15, 16], "larg": [6, 11], "larger": 0, "last": [1, 5, 8, 11, 12, 13, 15], "last_insert_id": 6, "last_nam": [5, 12, 13], "last_row": 6, "lastdot": 11, "lastrowid": 6, "later": [1, 2, 4, 5, 6, 8, 9, 11, 12, 13], "latest": [2, 6, 14], "latin1": 6, "latter": [6, 11, 14], "launch": [1, 2], "launcher": 1, "lax": 5, "layer": [5, 14, 16], "layout": [11, 12, 13, 14, 15, 16], "lazi": [2, 4, 14], "lazili": 15, "lazy_t": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 12, "ldap_set": 12, "ldapplugin": 12, "lead": 13, "leader": 15, "learn": [1, 6], "least": [1, 2, 6, 11, 14, 15], "leav": [5, 6, 12], "left": [8, 11, 13, 15], "len": 15, "length": [6, 11], "less": [7, 11, 14, 15], "let": [2, 6, 7, 11, 15], "letter": 11, "level": [2, 6, 7, 10, 11, 12], "leverag": 0, "li": [8, 11, 12, 15], "lib": [2, 8, 9, 13], "libldap2": 12, "librari": [0, 2, 4, 6, 10, 11, 12, 14, 15], "libsasl2": 12, "libsass": 4, "licens": 1, "life": 15, "lifespan": 11, "lifetim": 5, "lighter": [6, 14], "like": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "limit": [0, 2, 5, 6, 7, 8, 11, 12, 14, 15], "line": [4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16], "link": [2, 6, 7, 8, 9, 11, 12, 13, 15], "lint": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 15], "list_of_field": 6, "listabl": 6, "listen": 3, "listproperti": 6, "liststringproperti": 6, "listwidget": 11, "littl": [1, 5, 6], "live": 15, "ll": [1, 2, 3, 5, 6, 8, 11, 13, 15], "load": [3, 4, 5, 6, 8, 13, 15], "loazkji": 8, "local": [3, 5, 6, 11, 12, 13, 14], "localhost": [2, 4, 5, 6, 11], "locat": [2, 4, 8, 14], "lock": [5, 6, 15], "log": [2, 3, 4, 5, 6, 8, 9, 12, 14, 15], "logerror": 5, "logfil": 6, "logging_level": 2, "logic": [2, 5, 11, 12, 14, 15], "login": [0, 2, 4, 5, 6, 8, 11, 12, 14, 16], "logo": [0, 8, 9], "logout": [0, 8, 12], "long": [0, 2, 11, 15], "longer": [0, 6], "longtext": 6, "look": [2, 3, 5, 6, 7, 9, 11, 12], "lookup": [5, 7, 11], "loop": [6, 8, 15], "lose": [6, 11], "lost": [1, 5, 6, 14], "lot": [1, 4, 6], "love": 0, "low": 0, "lower": 11, "lowercas": 11, "lowest": 11, "lru": 5, "lt": [2, 9], "luca": [0, 1], "m": [0, 2, 6, 9, 11], "mac": 6, "machin": 6, "macneiln": 2, "maco": 2, "made": [1, 2, 6, 8, 11, 13], "magic": 0, "mai": [2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "mail": [1, 3, 6, 11], "mailto": 11, "main": [0, 1, 2, 4, 6, 8, 13, 14, 15, 16], "maintain": [6, 8, 13, 15], "mainten": 15, "major": 6, "make": [0, 1, 2, 5, 8, 9, 10, 11, 12, 13, 14, 15], "makefil": 2, "man": 15, "manag": [0, 1, 2, 3, 4, 5, 6, 11, 12, 15], "mandatori": [5, 6, 8], "mani": [0, 1, 2, 4, 5, 7, 8, 11, 13, 14, 15], "manipul": 6, "manner": [5, 14], "manual": [2, 3, 4, 6, 9, 12, 13], "map": [2, 4, 6, 9, 10, 11, 14], "map_non": 6, "marco": 6, "margin": [8, 15], "mark": [6, 12], "massimo": [0, 6], "master": [1, 2, 6, 13], "match": [2, 4, 5, 6, 7, 8, 9, 10, 11], "materi": 6, "math": 15, "mathemat": 6, "matter": 14, "max": [10, 11, 15], "max_concurrent_run": 15, "maximum": [5, 6, 11], "maxip": 11, "maxlen": 11, "maxsiz": 11, "mayb": [2, 5], "md5": 11, "me": [9, 11, 13, 15], "mean": [1, 2, 3, 5, 6, 8, 11, 12, 14], "mechan": [0, 5, 6, 8, 9, 12, 14], "meet": 6, "member": [11, 12], "membership": [0, 5, 11, 12, 14], "memcach": [0, 6], "memoiz": 16, "memori": 5, "mention": [5, 12, 15], "menu": [8, 11, 12], "merg": 6, "mess": 1, "messag": [2, 4, 5, 7, 8, 11, 13, 14, 15], "met": 6, "meta": [8, 9], "metadata": 6, "metatag": 9, "method": [4, 5, 7, 8, 9, 11, 12, 13, 15, 16], "mfa": 12, "micah": 0, "microsoft": [1, 12], "mid": 6, "middlewar": 5, "might": [7, 11], "migrat": [14, 16], "migrate_en": 6, "mileston": 1, "min": [8, 11, 13], "min_length": 11, "mind": [1, 4, 6, 7, 8, 11], "minim": [5, 13, 16], "minimalist": [8, 14], "minimalist_pag": 8, "minimum": [6, 11], "minip": 11, "minor": [8, 14], "minsiz": 11, "minut": 11, "miss": [2, 12, 13], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 13], "mm": 11, "mode": [2, 4, 5, 11, 12], "model": [0, 3, 4, 7, 9, 11, 13, 14, 15], "modern": [6, 12, 15], "modif": 2, "modifi": [2, 4, 6, 7, 8, 11, 13, 14, 15], "modified_bi": 6, "modified_on": 6, "modul": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16], "modular": [0, 6, 8, 14], "moment": 6, "mongo": 6, "mongodb": 6, "mongodbadapt": 6, "monkei": 5, "monolith": 0, "monospac": 9, "month": 11, "more": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "moreov": [6, 15], "most": [0, 3, 4, 5, 6, 11, 12, 13, 14, 15], "mostli": 5, "mother": 6, "mother_id": 6, "mount": 12, "move": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 4, 5, 6, 8, 11, 13, 14, 15], "multi": [1, 2, 6, 14], "multicast": 11, "multipl": [0, 1, 2, 4, 6, 8, 9, 10, 11, 14, 15, 16], "multiprocess": 5, "multiselect": 11, "multius": 12, "must": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14], "my": [5, 8, 9, 11, 12, 15], "my_app": 4, "my_id": 15, "my_password_fil": 2, "my_task": 15, "my_url_path": 14, "my_var": [5, 9], "myapp": [2, 4], "myclass": 9, "mycompon": 15, "mycustomwidget": 11, "mydb": 6, "myerror": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunct": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myorder": 6, "myqueri": 6, "myrecord": 6, "mysaltvalu": 11, "myset": 6, "mysidebar": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyl": 11, "mytabl": 6, "myvalu": 6, "myvirtualfield": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "n": [5, 6, 10, 15], "name": [2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "nameonli": 6, "narrow": 6, "nativ": 6, "native_json": 11, "nav": 8, "navbar": [8, 12], "navig": [8, 13, 15], "ndb": 6, "ne6fz": 8, "necessari": [6, 8, 9], "neck": 15, "need": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "neg": [6, 11], "negat": 6, "neither": [6, 11], "nest": [6, 8, 9], "nested_select": 6, "network": [11, 12], "never": [5, 6, 8, 11, 14, 15], "nevertheless": 6, "new": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "new_app": [8, 9], "new_password": 15, "new_sidecar": 15, "newer": 8, "newli": [4, 6, 10], "newlin": [6, 11], "next": [1, 2, 5, 6, 8, 11, 15], "nginx": 2, "nice": 9, "nicer": 15, "nico": 0, "nid": 6, "no_backslash_escap": 6, "no_tabl": [11, 15], "node": [4, 15], "non": [4, 5, 6, 11, 13, 14], "none": [2, 5, 6, 7, 9, 11, 13, 14, 15], "nor": [2, 6, 11], "normal": [2, 4, 5, 6, 8, 9, 11, 13, 15], "northwind": 1, "nosqladapt": 6, "not_accept": 11, "not_author": 12, "notat": [6, 9], "note": [1, 2, 5, 8, 9, 11, 14, 15], "noth": [2, 5, 6, 11, 15], "notic": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "notnul": 6, "notset": 2, "now": [0, 2, 4, 5, 6, 8, 11, 13, 15], "nowadai": 1, "null": [6, 7, 11, 15], "num": 6, "number": [2, 4, 5, 6, 8, 10, 11, 13], "number_work": 2, "numer": [6, 11], "o": [4, 5, 7, 11, 13], "oauth": 12, "oauth2": [0, 5], "oauth2discord": 12, "oauth2facebook": 12, "oauth2googl": 12, "obj": [6, 8], "object": [0, 5, 6, 7, 8, 9, 10, 11, 14, 16], "observ": 6, "obtain": [2, 4, 6, 12, 15], "obviou": [6, 7, 8, 12], "obvious": [6, 11], "occasion": [6, 11], "occur": [2, 6, 8, 11, 15], "odd": [6, 8], "off": [0, 2, 4, 6, 13, 15], "offici": [0, 6, 11, 15], "offset": [6, 7], "often": [4, 6, 12, 15], "ok": [9, 14], "old": [2, 5, 11, 14], "older": 11, "ombott": [0, 4, 14], "omit": 2, "on_delete_act": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "onc": [1, 2, 5, 9, 11, 12, 13, 15], "onclick": 15, "ondelet": 6, "one": [0, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 15], "ones": [2, 5, 6, 7, 11, 14], "onion": 5, "onkeydown": 15, "onli": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "onlin": [1, 6], "onload": 15, "onvalid": 11, "onward": 6, "opac": 15, "open": [1, 2, 3, 4, 5, 6, 9], "oper": [0, 3, 5, 10, 11, 12, 16], "operationalerror": 11, "oppos": [6, 9], "opposit": [5, 6], "oprow": 6, "optim": [4, 6], "optimis": 6, "option": [0, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "oracleadapt": 6, "order": [1, 2, 4, 5, 6, 7, 9, 11, 13, 14], "order_item": 6, "orderbi": [11, 12, 13, 15], "ordereddict": 6, "org": [7, 9, 15], "organ": 4, "origin": [6, 8, 9, 10, 11], "other": [0, 1, 2, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16], "other_pag": [11, 15], "otherfield": 6, "othert": 6, "otherwis": [5, 6, 8, 11, 12, 13], "oufil": 6, "our": [0, 1, 2, 4, 5, 6, 9, 11, 15], "out": [0, 1, 2, 6, 8, 15], "outer": [5, 11, 15], "outlin": [4, 5], "output": [1, 2, 4, 5, 6, 7, 8, 9, 11, 15], "output_styl": 4, "outsid": [0, 5, 6, 11, 13, 14, 15], "ov": 6, "over": [6, 8, 13, 15], "overcom": 6, "overhead": 6, "overkil": 12, "overload": 6, "overrid": [4, 6, 8, 9, 12, 13, 14, 15], "override_class": 13, "override_styl": 13, "overview": 16, "overwritten": [5, 14], "own": [4, 5, 6, 8, 11, 12, 13, 14, 15], "owner": [6, 11], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "ownership": 6, "p": [2, 8, 11], "p10n": 10, "packag": [0, 6, 9], "pad": [8, 14, 15], "page": [1, 5, 6, 9, 11, 12, 13, 14, 15, 16], "page_head": 8, "page_left_menu": 8, "page_script": 8, "pagin": [6, 13], "paint": [4, 11], "pair": [6, 9], "pam": [0, 5], "pam_plugin": 12, "pamplugin": 12, "paragraph": [1, 5, 9, 11, 13], "param": [11, 12, 13, 14, 15], "paramet": [1, 2, 4, 5, 12, 15], "parent": [2, 6, 8, 15], "parenthes": 6, "park": [7, 13], "pars": [4, 5, 6, 10, 11, 12], "parsemodul": 4, "parser": 6, "part": [6, 9, 11, 14], "parti": [0, 5], "partial": [4, 6, 14], "particip": 1, "particular": [0, 1, 6, 11, 13, 14, 15], "particularli": 6, "pass": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "passphras": 5, "password": [0, 2, 3, 5, 6, 8, 11, 12, 14, 15], "password_fil": 2, "passwordwidget": 11, "patch": 5, "path": [2, 4, 5, 6, 7, 10, 11, 13, 14, 15], "path_to": 2, "pattern": [4, 7], "paus": 2, "payment": 6, "payrol": 5, "pbkdf2": 11, "pc": 3, "pdf": [1, 11], "pdkdf2": 2, "per": [0, 4, 5, 7, 13], "percent": 6, "percentag": 6, "perfect": 0, "perfectli": 13, "perform": [0, 3, 5, 6, 11, 12, 14], "period": 15, "permiss": [0, 5, 6, 14], "permit": 6, "permitted_tag": 9, "persist": [5, 6, 12], "person": [2, 6, 7, 11, 13], "persons_and_th": 6, "perspect": 0, "pet": 6, "peter": [7, 13], "phase": 6, "philip": 6, "phone": 11, "photograph": [7, 13], "phrase": 6, "physic": 12, "pick": [4, 5, 12], "piec": [0, 5, 6, 8, 11], "pierro": 0, "pip": [0, 1, 6], "pirsch": 0, "piu": 5, "pixel": 11, "place": [1, 5, 6, 8, 11, 13, 15], "placehold": [6, 10, 11, 15], "plai": [0, 15], "plain": 6, "plan": [1, 15], "platform": [0, 1, 16], "pleas": [5, 6], "plu": [6, 8, 12, 13], "plugin": [4, 5, 11, 13, 15], "plural": [0, 4, 5, 13, 14, 15, 16], "pm": 11, "png": [9, 11], "point": [2, 3, 4, 5, 6, 7, 8, 11, 13, 14], "pointer": 15, "pointless": 6, "polici": [0, 16], "pollut": 5, "pool": [4, 5], "pool_connect": 6, "pool_siz": [5, 6], "poor": 15, "pop": 15, "popul": 6, "popular": [0, 6], "port": [0, 2, 3, 5, 6, 14], "portabl": 6, "portion": 13, "posit": [5, 9], "possibl": [4, 5, 6, 8, 11, 13, 14, 15], "possibli": 6, "post": [4, 6, 7, 9, 11, 12, 13, 14, 15], "post_action_button": 13, "post_text": 6, "post_var": [7, 14], "post_writ": 7, "postel": 10, "postel\u00ed": 10, "postfix": 14, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyco": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserv": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocess": 14, "potenti": 2, "power": [2, 6, 7, 12, 14, 15], "pprint": 6, "pr": 1, "practic": [0, 6, 8, 11, 14, 16], "pre": [2, 4, 5, 6, 13], "pre_action_button": 13, "precaut": 2, "preced": [5, 6, 7, 8, 11], "preciou": 13, "predefin": [8, 15], "predetermin": 14, "prefer": [2, 5, 6, 9, 15], "prefix": [2, 4, 6, 7, 8, 11, 14], "preliminari": 1, "prepend": [4, 7, 11, 14, 15], "prepend_schem": 11, "preprocess": 14, "prerequisit": [5, 16], "presenc": [5, 6], "present": [2, 6, 8, 11, 12], "preserv": [0, 5], "press": [3, 4, 13], "pretti": [4, 6, 14], "prevent": [2, 5, 6, 8, 9, 11, 15], "previou": [2, 5, 6, 8, 9, 11, 15], "previous": [5, 6, 11], "price": 6, "prima": 5, "primari": [8, 12], "primarili": 13, "prime": 11, "print": [4, 6, 9, 10, 12, 14, 15], "privat": [5, 11], "probabl": [4, 11], "problem": [0, 1, 6, 8, 12, 13, 15], "procedur": 16, "process": [2, 4, 5, 6, 8, 11, 12, 13, 14, 15], "produc": [0, 2, 5, 6, 8, 9, 11, 12], "product": [2, 4, 6, 11, 15], "product_nam": 11, "product_quant": 11, "product_record": 15, "profil": [0, 8, 12, 14], "program": [1, 2, 3, 6, 8, 9, 11, 15], "programmat": [6, 9], "project": [0, 2, 4, 5, 6], "project_nam": 2, "prompt": [2, 4, 6], "proper": [5, 6, 13], "properli": 4, "properti": [6, 11], "protocol": 3, "prototyp": [11, 15], "provid": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "prudent": 6, "pseudo": 6, "psycopg2": 6, "public": 6, "publish": 4, "pull": [1, 6], "punycod": 11, "pure": 6, "purpos": [0, 5, 6, 9, 11, 12, 14], "put": [4, 5, 7, 11, 15], "put_writ": 7, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15], "py4web": [2, 3, 4, 5, 7, 8, 9, 11, 12, 13], "py4web_filesystem": 6, "py4web_wsgi": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15], "pyfilesystem": 6, "pymongo": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytd": 6, "python": [0, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15], "python2": [2, 14], "python3": [1, 2], "pyweb": 14, "q": [2, 6, 13], "qualifi": 6, "quantiti": [6, 11], "queri": [4, 5, 7, 9, 11, 12, 13, 14, 15], "query1": 6, "query2": 6, "queryselector": 15, "queryselectoral": 15, "querystr": 13, "question": [1, 2, 6], "quick": [1, 11], "quickli": [2, 11, 13], "quiet": 2, "quirk": 5, "quit": [1, 2, 5, 7, 8, 11, 13], "quot": [2, 9], "quote_minim": 6, "quote_nonnumer": 6, "quotechar": 6, "r": [2, 6, 11], "race": 11, "radio": [9, 11], "radiowidget": 11, "radiu": 15, "rais": [5, 6, 11, 12, 14], "ram": [5, 6], "randint": [8, 12], "random": [6, 8, 11, 12, 15], "rang": [4, 6, 8, 12, 14], "rapid": [0, 11, 15], "rare": 6, "rather": [6, 8, 9, 11, 15], "raw": 16, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "reach": 2, "react": 15, "reactiv": 15, "read": [1, 4, 5, 6, 7, 13, 15], "readabl": [5, 6, 7, 13, 14], "readi": [2, 6], "readm": [1, 11], "readonli": [2, 11, 15], "real": [2, 4, 7, 8, 11], "real_ident": [6, 7], "realiz": 6, "realli": [1, 4, 6], "reap": 15, "reason": [2, 5, 6, 7, 13, 14], "reassembl": 0, "rebuild": 6, "rebuilt": 6, "rec_id": 7, "recal": 8, "receiv": 6, "recent": [3, 5, 6, 11, 13], "recereiv": 15, "recip": 2, "recogn": [4, 6], "recommand": 15, "recommend": [1, 5, 6, 11], "record": [7, 11, 12, 13, 14, 15], "record_id": [7, 15], "recov": [6, 11], "recurr": 6, "recurs": 8, "recycl": 6, "red": [3, 4, 6, 8, 9, 11], "redefinit": 6, "redesign": 0, "redi": 0, "redirect": [4, 5, 11, 12, 13, 15], "reduc": [0, 5, 15], "redund": 6, "ref": [9, 11], "refer": [1, 5, 7, 8, 11, 15], "referenc": [6, 7, 9], "referenced_bi": 7, "reflect": [1, 6], "refresh": 13, "regex": [7, 9, 11], "regexlib": 11, "regist": [0, 5, 6, 8, 12, 14, 15], "register_plugin": 12, "register_task": 15, "register_vue_compon": 15, "registr": [4, 11], "registration_stamp": 11, "regular": [0, 2, 4, 6, 7, 8, 10, 11, 13, 14, 15], "reimplement": 15, "reinstal": 2, "reinstat": 6, "reject": 11, "rel": [4, 6, 8, 13, 14], "relat": [5, 16], "relationship": 6, "releas": [0, 2], "relev": 6, "reli": [0, 4, 6], "reliabl": 1, "reload": [2, 3, 4, 5, 11, 15], "remain": [0, 6, 11], "rememb": [3, 5, 6, 11], "remote_addr": [5, 12], "remov": [0, 2, 4, 6, 9, 11, 12], "renam": [1, 7], "render": [5, 7, 8, 9, 11, 13, 14, 15], "renoir": 8, "reopen": 5, "repackag": 0, "repeat": [6, 11], "replac": [0, 2, 6, 8, 9, 11, 13, 15], "replic": [1, 5], "report": [4, 8], "repositori": [1, 2, 3], "repr_row": 6, "repres": [0, 8, 11], "represent": 9, "representational_state_transf": 7, "representing_field": 11, "request": [0, 1, 2, 5, 6, 7, 11, 12, 13, 14, 15], "request_reset_password": 12, "requir": [0, 1, 2, 4, 5, 6, 7, 11, 12, 13, 14, 15], "requires_": 14, "requires_login": 14, "requires_membership": 5, "rescu": 6, "reserv": 11, "reset": 6, "reset_password": 12, "resourc": [6, 12, 16], "respect": [6, 9, 11, 13], "respons": [4, 5, 6, 8, 13, 14, 15, 16], "rest": [7, 12], "restapi": [0, 3, 16], "restart": [2, 4, 5, 6, 13], "restor": 6, "restrict": [5, 6, 7, 11, 15], "restructuredtext": 1, "result": [1, 6, 7, 8, 11, 13, 15], "resultset": 6, "ret": 6, "retain": 6, "retri": 6, "retriev": [4, 5, 6, 14, 15], "return": [5, 6, 7, 9, 11, 12, 13, 15], "reus": 6, "revers": [5, 6], "revert": 6, "rewrit": 6, "rewritten": 6, "rfc": 11, "rid": 6, "ride": 8, "right": [1, 2, 3, 5, 6, 8], "road": 15, "robust": 15, "rocket": 14, "rocket3": [2, 14], "rocketserv": 2, "role": [2, 5, 9], "roll": [5, 6], "rollback": [4, 15], "root": [6, 8, 12, 13], "roughli": 6, "rout": [0, 2, 3, 5, 13, 14, 15], "rover": 6, "row": [8, 9, 11, 13, 14, 15], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 13, "rpc": 6, "rst": 1, "rule": [4, 5, 8, 11, 13], "run": [1, 3, 4, 5, 8, 12, 14, 15, 16], "run_in_transact": 6, "runtim": [2, 6], "s3": 6, "s_": [11, 15], "s_autocomplet": 15, "s_autocomplete_result": 15, "s_down_kei": 15, "s_search": 15, "safari": 15, "safe": [1, 5, 6, 9, 13, 14], "safer": [6, 11, 13], "safeti": [2, 15], "sai": [6, 12], "said": 7, "sake": 6, "salt": 11, "sam": 0, "same": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "same_sit": 5, "saml": 12, "saml2": 0, "sampl": 12, "sandbox": 15, "sane": 4, "sanit": [5, 9, 14], "santa": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "save": [1, 2, 4, 5, 6, 10, 11], "scaffold": [2, 4, 5, 6, 8, 11, 14, 15], "scaffold_zip": 2, "scale": [5, 8], "scan": 6, "scare": 1, "schafer": 1, "schduler": 15, "schedul": 16, "scheduled_for": 15, "schema": 6, "scheme": 11, "school": 12, "scope": 4, "score": 15, "score_input": 15, "scratch": 16, "script": [2, 5, 8, 15], "sdk": 2, "se": 6, "seamlessli": 8, "search": [0, 1, 2, 3, 6, 9, 11, 12, 16], "search_button_text": 13, "search_form": 13, "search_queri": 13, "search_text": 13, "search_valu": 15, "searchabl": 6, "sec": 15, "second": [5, 9, 11, 12, 14], "secret": [5, 12], "section": [2, 4, 6, 8, 11, 12], "secur": [0, 2, 7, 12], "see": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "seem": 6, "seen": [0, 5, 6, 7, 9, 11, 13, 15], "segment": 4, "select": [3, 4, 7, 10, 11, 12, 13, 14, 15, 16], "selected_el": 15, "selectedindex": 15, "selector": [9, 15], "selector1": 9, "selector2": 9, "selectorn": 9, "selectwidget": 11, "self": [2, 5, 9, 11, 13, 15], "semant": [11, 12], "send": [2, 6, 11, 12], "send_two_factor_email": 12, "sender": 12, "sens": [0, 6, 11, 12], "sensit": [5, 6, 11], "sent": [5, 6, 12, 15], "separ": [2, 5, 6, 8, 11, 12, 13, 15], "sequenc": [5, 6], "sequenti": 6, "seri": 1, "serial": [4, 5, 6, 8, 9, 11], "serializ": [0, 5, 6, 9], "serv": [0, 2, 4, 6, 12, 14, 15], "server": [0, 2, 3, 4, 7, 8, 12, 14, 15, 16], "server_addr": 6, "serversid": 15, "session": [0, 2, 4, 6, 9, 11, 12, 13, 14, 15, 16], "session_app1": 5, "session_secret_kei": 5, "set": [0, 1, 2, 4, 5, 7, 8, 9, 10, 12, 15], "set_attribut": 6, "set_encod": 6, "set_head": 6, "set_password": 3, "setinterv": 15, "setup": [1, 3, 4, 12, 13, 15, 16], "setvirtualfield": 6, "sever": 6, "sf": 15, "sftp": 6, "sh": 15, "sha512": [8, 11], "share": [6, 14], "shell": 9, "ship": 8, "shoe": 6, "shop": 5, "short": 15, "shortcut": [8, 11], "shorter": [6, 11], "shortli": 4, "should": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "show": [1, 2, 4, 5, 6, 8, 11, 12, 13], "show_id": 13, "shown": [2, 6, 11, 12], "shutil": 6, "side": [1, 6, 15, 16], "sidebar": 8, "sidebar_en": 8, "sidebar_menu": 9, "sidecar": 15, "sign": [2, 4, 5, 6, 8, 11, 12], "signatur": [5, 7, 9, 11], "signed_url": 5, "signer": 5, "signifi": 8, "signific": 8, "signing_info": 11, "similar": [0, 4, 5, 6, 9, 11, 14], "similarli": [6, 9], "simpl": [1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 15, 16], "simple_queri": 15, "simpler": [6, 8, 13], "simplest": [2, 4], "simpli": [2, 4, 5, 6, 8, 10, 11, 15], "simplic": [6, 15], "simplifi": [0, 4, 6, 8], "simultan": 6, "sinc": [0, 4, 5, 6, 7, 8, 11, 12, 13, 14], "singl": [0, 2, 5, 6, 7, 8, 9, 11, 12, 13], "singleton": [5, 14], "site": [1, 2, 4, 5, 6, 9, 13, 15], "situat": 6, "six": 6, "size": [5, 6, 8, 11], "skip": [5, 15], "slash": [1, 4, 5, 12], "slave": 6, "sleep": 15, "sleep_tim": 15, "slice": 6, "slicker": 0, "slow": [6, 15], "slug": 11, "small": [5, 11], "smaller": 6, "snippet": 6, "so": [2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "soap": 9, "socket": 15, "solut": [0, 1, 2, 6, 15], "some": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15], "some_condit": 8, "some_form": 11, "some_valu": 6, "somefield": 6, "somefil": 6, "somepath": 5, "somet": 6, "someth": [5, 6, 7, 8, 9, 11, 15], "sometim": [6, 8, 9, 11, 13], "somevalu": 6, "somewhat": 11, "somewher": 6, "soon": [8, 15], "sophist": 14, "sort": 13, "sourc": [3, 4, 6, 11, 15], "source1": 11, "south": 1, "sp": 6, "space": [6, 8, 11, 13], "span": [4, 14], "spatialit": 6, "speak": 5, "special": [0, 4, 5, 6, 8, 9, 10, 12, 14, 16], "specif": [1, 2, 5, 6, 7, 8, 9, 11, 12, 14, 15], "specifi": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "speed": [6, 7, 8], "sphinx": 1, "spiderman": [7, 13], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 11], "split_email": 11, "sql": 16, "sql_mode": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 11, 14], "sqlite": [1, 5, 7, 12, 13, 15], "sqlite3": 6, "sqliteadapt": 6, "squar": [0, 8], "src": [5, 6, 8, 9, 15], "ss": 11, "ssl": 2, "ssl_cert": 2, "ssl_kei": 2, "sslcert": 6, "sslkei": 6, "sslmode": 6, "sslrootcert": 6, "sso_id": [5, 12], "stabl": 2, "stai": 6, "stand": [7, 9, 11], "standard": [1, 2, 3, 6, 7, 12, 13, 14, 15, 16], "start": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "start_imperson": 12, "startup": [6, 14, 16], "state": [5, 6, 7, 14, 15], "stateless": [5, 15], "statement": [6, 8, 11], "static": [1, 8, 9, 14, 16], "static_dev": 4, "statu": 7, "stderr": [2, 15], "stdout": [2, 15], "steil": [0, 1, 13], "step": [2, 6, 12, 14, 15], "step1": 5, "step2": 5, "step3": 5, "step_complet": 5, "still": [2, 5, 6, 9, 11, 13, 14], "stone": 13, "stop": [2, 3, 12], "stop_imperson": 12, "storag": [5, 6, 7, 13], "store": [0, 2, 5, 6, 9, 11, 12, 14, 15], "stored_item": 6, "stored_item_arch": 6, "stori": [0, 5], "str": [2, 5, 6, 9, 14, 15], "stream": [4, 5, 6, 14], "strength": 7, "strict": 11, "strictli": [4, 15], "string": [4, 5, 7, 8, 9, 10, 11, 13], "stringio": 6, "stringlistproperti": 6, "strip": [2, 11, 14], "strong": [0, 9, 12], "strongli": [1, 5, 11, 13], "structur": [1, 4, 5, 6, 10, 12, 13, 14, 16], "stuck": 2, "student": 2, "studi": 1, "studio": 1, "stuff": [11, 13], "style": [4, 8, 11, 15, 16], "stylesheet": [8, 13], "sub": 6, "subclass": [6, 11], "subfold": [4, 5, 6], "subhead": 9, "subject": [6, 7, 12], "submiss": [11, 15], "submit": [1, 5, 6, 9, 11, 12, 13, 15], "submodul": 0, "subnet": 11, "subqueri": 15, "subsect": 6, "subset": [0, 6, 11], "substitut": [6, 8], "substr": 11, "subtl": 6, "succe": 6, "succeed": 0, "success": [0, 4, 5, 6, 7, 12, 15], "successfulli": 12, "sudo": [2, 12], "suffer": [0, 12], "suffic": 6, "suffici": 6, "sugar": 5, "suggest": [1, 6, 11], "sugizo": 0, "suit": 2, "summar": 6, "superhero": [6, 7, 11, 13, 15], "superman": [6, 7, 11, 13], "superpow": [6, 7], "superseed": 6, "suppli": 9, "support": [1, 4, 5, 8, 9, 10, 11, 12, 14, 15, 16], "suppos": 6, "suppress": [2, 9], "sure": [2, 3, 4, 5, 6, 10, 11, 12, 15], "surround": 11, "susan": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 11, "symlink": [2, 4], "sync": [2, 6], "synopsi": 11, "syntact": [5, 11], "syntax": [0, 1, 4, 5, 6, 7, 9, 11, 12, 14, 15, 16], "system": [0, 2, 5, 6, 9, 12, 15], "sysus": 6, "t": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14], "t_folder": 5, "tab": [3, 5, 11], "tabl": [5, 7, 11, 12, 13, 14, 15], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 11, 15], "tag": [0, 5, 7, 8, 14, 15, 16], "tag_input": 15, "tagged_db": 12, "tagged_nam": 12, "tagger": 9, "tags_input": 15, "tail": 6, "take": [2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "taken": 11, "tamper": [5, 6], "tanti": 15, "tantissimi": 10, "tar": 11, "target": [6, 9, 15], "task": [1, 5, 6, 12, 15], "task_run": 15, "tast": 6, "tbodi": 6, "tcp": 3, "td": 6, "teacher": 12, "technic": 15, "tell": [2, 4, 5, 6, 12, 13, 15], "temp": 6, "templat": [0, 9, 11, 12, 14, 15, 16], "temporari": 6, "temporarili": 5, "ten": 11, "tenanc": 6, "teradata": 6, "teradataadapt": 6, "teredo": 11, "term": [6, 11], "termin": [4, 8, 15], "test": [0, 2, 4, 6, 8, 9, 11, 12, 13], "text": [2, 5, 6, 8, 9, 13, 15], "textarea": 11, "textareawidget": 11, "textual": 9, "th": 6, "than": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "thank": [0, 6, 9], "that_templ": 8, "thead": 6, "thei": [0, 2, 4, 5, 6, 7, 8, 11, 12, 14, 15], "them": [0, 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14], "themselv": [6, 8], "therefor": [2, 4, 5, 6, 8, 9, 11, 14], "therein": 6, "thi": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "thing": [2, 5, 6, 11, 14], "thing_id": 11, "thing_tags_default": 6, "think": [5, 6, 8, 13, 15], "third": [0, 5, 6, 11], "this_templ": 8, "thisisatest": 9, "thisisthekei": 11, "those": [0, 2, 5, 6, 8, 9, 12, 14, 15], "though": 8, "thought": [0, 6, 12], "thread": [2, 5, 6, 14, 15], "threadsafevari": 5, "three": [0, 5, 6], "through": [2, 11], "throughout": 5, "thu": [6, 8], "thumbnail": 11, "ti": 5, "ticket": [0, 3, 6], "tickets_onli": 2, "tild": 6, "tim": 6, "time": [0, 2, 4, 5, 8, 13, 14, 15], "timedelta": 11, "timeoffset": 9, "timeout": [5, 15], "timestamp": [5, 7, 15], "tip": [2, 13, 16], "titl": [3, 8, 11, 15], "tmp": [5, 6], "todai": [0, 11, 15], "todo": 15, "togeth": [0, 6, 8, 10, 13], "toi": 6, "token": [5, 11], "too": [2, 5, 6, 11, 15], "took": 6, "tool": [0, 6, 12, 15], "top": [8, 10, 11, 12], "topic": [13, 16], "tornado": 2, "total": [6, 7], "total_pric": 6, "touch": 8, "tr": 6, "traceback": [5, 6], "track": [1, 6, 14], "trade": 6, "tradit": [2, 6], "trail": [2, 11], "train": 1, "transact": 5, "transat": 15, "transform": [5, 6, 11, 15], "transit": 15, "translat": [1, 2, 4, 6, 8, 11, 14, 15, 16], "transpar": [6, 8, 11], "trap": 15, "treat": [6, 14], "tree": [4, 8, 11], "tri": [0, 6, 14], "trick": 2, "trickeri": 8, "trigger": [3, 5, 6, 15], "trivial": [5, 6], "true": [1, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "truncat": 6, "truth": 15, "try": [1, 2, 5, 6, 11, 12, 15], "ttl": 5, "tupl": [6, 8, 9], "turn": [0, 4, 6, 12, 13, 15], "tutori": [2, 13, 15], "twice": [5, 6], "twitter": [0, 5, 12], "two": [0, 1, 2, 4, 5, 6, 8, 11, 13, 14, 15], "two_factor": 12, "two_factor_filt": 12, "txt": [0, 2, 4, 6], "typ": 11, "type": [2, 4, 5, 7, 8, 9, 12, 13, 15], "typewrit": 9, "typic": [4, 5, 6, 8, 11], "u": [2, 6, 9, 11], "ubuntu": 12, "uc": 1, "uid": 6, "ul": [8, 11, 12, 15], "un": [8, 9, 10, 15], "unari": 6, "unauthent": [5, 6, 9], "unauthor": 6, "unchang": [6, 11], "under": [2, 3, 4, 5, 6, 11], "underli": 14, "underscor": [6, 9, 11], "understand": [0, 1, 4, 6, 7, 8, 13, 16], "undocu": 15, "unfortun": [6, 13], "unicod": [6, 11], "unicodedecodeerror": 6, "uniform": 6, "union": 6, "uniqu": [6, 7, 11], "unit_pric": 6, "univers": [6, 9], "unknown": 4, "unless": [2, 3, 5, 6, 8, 11, 15], "unlik": [0, 2, 4, 6, 7, 8, 14, 15], "unnam": [6, 9], "unned": 2, "unord": 9, "unpkg": 15, "unquot": [6, 9], "unsaf": [5, 9], "untest": [2, 12], "until": [0, 5, 6, 8, 11], "unus": 6, "unusu": 6, "unwant": [2, 6], "unzip": 2, "up": [1, 2, 5, 6, 8, 12, 15], "updat": [2, 5, 11, 13, 14, 15, 16], "update_languag": 10, "update_na": 6, "update_th": 11, "upgrad": [6, 16], "upload": [0, 4, 14], "upload_fold": [6, 11], "upload_help": 15, "uploadf": 6, "uploadfield": 6, "uploadfold": 6, "uploadsepar": 6, "upon": [2, 8, 12, 14], "upper": [4, 5, 11], "upper_cas": 5, "uppercas": [5, 11], "uri": 12, "url": [2, 4, 5, 7, 8, 11, 12, 13, 14, 15], "url_prefix": 2, "url_sign": 5, "url_to_post_to": 15, "urlsign": 16, "us": [0, 1, 3, 4, 7, 10, 11, 14, 16], "usabl": 13, "usag": [2, 3, 4, 5, 6, 9, 11, 12, 13], "use_schedul": 15, "useful": 11, "useless": [11, 14], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "user_email": 14, "user_id": [5, 6, 12, 14], "user_nam": 6, "user_outside_network": 12, "user_password": 6, "usernam": [5, 6, 12], "usr": 1, "usual": [1, 2, 5, 6, 7, 8, 9, 11], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "util": [2, 4, 5, 8, 9, 11, 12, 13, 14, 16], "uuid": [5, 6], "uuid4": [5, 6], "v": [5, 9, 11, 15], "v3": 1, "val": [13, 15], "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [2, 4, 7, 8, 9, 13, 14, 16], "validate_j": 4, "valq7711": [0, 4], "valu": [2, 5, 7, 8, 9, 10, 11, 13, 15], "valuabl": 1, "value1": 6, "value2": 6, "value_field": 11, "var": [6, 9, 11, 14, 15], "varchar": 6, "variabl": [4, 5, 6, 9, 10, 11, 13, 15], "variou": [5, 6], "ve": [1, 2, 3, 5, 8, 9, 11, 13, 15], "vehicl": 5, "vendor": 15, "vendor_typ": 15, "venv": 2, "verbos": 6, "veri": [0, 4, 5, 6, 8, 9, 11, 12, 14, 15], "verif": 12, "verifi": [5, 11, 12], "verify_email": 12, "versa": 5, "version": [1, 3, 5, 7, 8, 11, 15], "vertica": 6, "verticaadapt": 6, "via": [5, 6, 8, 9, 12, 15], "vice": 5, "video": [2, 15], "view": [1, 5, 6], "viewport": 8, "virtual": [1, 16], "virtualenv": [1, 2], "virtualfield": 6, "visibl": 4, "visit": [3, 5, 6, 8, 11, 12], "visit_log": 5, "visitor": [6, 9, 11], "visto": 5, "visual": 1, "vital": 12, "volt": 5, "vscode": 2, "vue": [0, 4, 15], "vulner": 8, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "wa": [0, 5, 6, 11, 12], "wai": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "wait": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 9, 11, 13, 15], "warn": [2, 5], "warp": 10, "watch": [2, 3, 16], "wayn": [7, 13], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "web": [0, 1, 2, 5, 6, 8, 12, 13, 14, 15, 16], "web2pi": [0, 1, 2, 3, 4, 6, 11, 12, 13, 16], "webserv": 4, "websit": [6, 15], "websocket": 15, "welcom": [2, 4, 5, 8, 14, 15], "well": [0, 5, 6, 8, 11, 12, 15], "were": [0, 4, 6], "what": [1, 4, 5, 6, 8, 11, 12, 14, 15, 16], "whatev": [9, 15], "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whenev": [4, 6], "where": [1, 2, 4, 6, 7, 8, 11, 12, 14, 15], "whether": [5, 6, 8, 11, 12, 13, 14], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whichev": 15, "while": [0, 5, 6, 7, 11, 12, 14], "white": [9, 15], "whitelist": 12, "who": [0, 12], "whole": [4, 11], "whose": [6, 8, 11], "why": [5, 6, 8, 14], "widget": [6, 16], "width": [8, 11], "wiki": [6, 7], "wikipedia": [6, 7], "wild": 6, "wildcard": 4, "william": 6, "window": [1, 2, 4, 5, 6, 8, 11], "wish": [1, 6, 11, 15], "wit": 2, "with_alia": 6, "withh": 5, "within": [0, 1, 4, 5, 6, 8, 9, 11, 13, 15], "without": [1, 8, 9, 13, 15, 16], "wolf": 0, "won": 6, "wood": 6, "word": [5, 6, 10, 13], "work": [0, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "worker": [2, 5, 15], "workflow": [5, 16], "workload": 6, "workspacefold": 2, "world": [4, 5, 6, 8, 9, 11], "worri": [4, 6], "worth": 8, "would": [0, 5, 6, 8, 9, 11, 13, 15], "wouldn": 6, "wrap": [5, 10, 11, 15], "wrapper": [14, 15], "writabl": [5, 6, 11, 14], "write": [2, 4, 5, 6, 8, 11, 14], "written": [1, 8, 11, 13], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 9, 13], "x": [2, 6, 8, 9, 11, 13, 15], "xml": [5, 8, 11, 14, 15], "xmlescap": 9, "xmln": 9, "xss": [6, 8, 9], "xyz": [9, 11], "y": [2, 9, 11], "yaml": 2, "yatl": [0, 4, 5, 6, 11, 13, 15, 16], "yb": 9, "ye": [2, 6, 15], "year": [11, 15], "yes_or_no": 6, "yet": [0, 2, 4, 5, 6, 8, 11, 15], "yield": 6, "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "your": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "your_app": 11, "your_full_path_to_py4web": 1, "your_nam": [1, 15], "yourapp": 6, "yourappnam": 2, "youremail": 12, "yourself": [1, 2, 11, 13], "youtub": [2, 6], "yyyi": 11, "z": [9, 11], "zanferrari": 0, "zap": 12, "zap_id": 12, "zapper": 12, "zero": [6, 8, 11, 13], "zip": [0, 2, 6, 11], "zip_cod": 15, "zxjdbc": 6}, "titles": ["What is py4web?", "Help, resources and hints", "Installation and Startup", "The Dashboard", "Creating an app", "Fixtures", "The Database Abstraction Layer (DAL)", "The RestAPI", "YATL Template Language", "YATL helpers", "Internationalization", "Forms", "Authentication and authorization", "Grid", "From web2py to py4web", "Advanced topics and examples", "py4web: the reference Manual"], "titleterms": {"A": [1, 9, 11], "On": 4, "One": 6, "The": [1, 3, 4, 5, 6, 7, 11, 13, 15], "_lastsql": 6, "_scaffold": 4, "about": [5, 6], "abstract": 6, "access": 14, "acknowledg": 0, "action": [7, 12, 13], "ad": 6, "adapt": 6, "advanc": [6, 11, 15], "aka": 2, "alias": 6, "all": 6, "alon": 6, "an": [4, 6], "anoth": 6, "any_of": 11, "anywher": 5, "app": [2, 4], "applic": 6, "arg": 14, "as_dict": 6, "as_list": 6, "asyncio": 15, "attempt": 6, "attribut": 6, "auth": [5, 12, 14], "authent": 12, "author": 12, "autocomplet": 15, "avg": 6, "base": 6, "basic": [8, 11, 13], "beautifi": 9, "belong": 6, "binari": 2, "block": 8, "bodi": 9, "broken": 6, "built": 9, "button": 13, "cach": [5, 6], "cacheabl": 6, "call": [2, 14], "callabl": 13, "callback": 6, "cascad": 6, "case": 6, "cat": 9, "caveat": 5, "celeri": 15, "chang": 4, "checkbox": 11, "children": 9, "class": 13, "cleanup": 11, "client": 5, "coalesc": 6, "coalesce_zero": 6, "column": 13, "com": 2, "combin": 6, "command": [2, 6], "commit": 6, "common": 6, "complex": 11, "comput": 6, "condit": 5, "connect": 6, "constructor": [6, 11], "contain": 6, "content": 16, "contribut": 1, "control": 6, "conveni": 5, "convers": 14, "cooki": 5, "copi": [4, 6], "count": 6, "counter": 14, "creat": 4, "crud": 13, "crypt": 11, "csv": 6, "custom": [5, 6, 9, 11, 13], "dai": 6, "dal": [5, 6], "dashboard": 3, "data": 6, "databas": [5, 6, 11], "datastor": 6, "date": 11, "db": 6, "debug": 1, "decor": 5, "def": 8, "default": [6, 8], "defin": 6, "define_t": 6, "delet": 6, "deploy": 2, "design": [2, 11], "develop": 8, "dictionari": [6, 11], "discord": [1, 12], "distinct": 6, "distribut": 6, "div": 9, "docker": 2, "dom": 9, "drop": 6, "dynam": 4, "elif": 8, "els": 8, "em": 9, "endswith": 6, "engin": 2, "environ": 2, "equal": 11, "exampl": [7, 11, 13, 14, 15], "except": 8, "exclud": 6, "executesql": 6, "experi": 6, "experiment": 6, "export": 6, "express": 6, "extend": 8, "facebook": 12, "factor": 12, "failur": 6, "fake_migr": 6, "featur": [6, 13], "fetch": 6, "field": [6, 11, 13], "file": [4, 10, 11, 14], "filter": [6, 13], "filter_in": 6, "filter_out": 6, "final": 8, "find": [6, 9], "first": [2, 6], "fix": 6, "fixtur": 5, "flash": [5, 14], "folder": 6, "form": [9, 11, 14, 15], "format": [6, 11, 15], "from": [2, 4, 6, 14], "function": [8, 11], "gae": 2, "gcloud": 2, "gener": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 12], "gotcha": 6, "grid": [13, 14, 15], "group": [1, 6], "groupbi": 6, "h1": 9, "h2": 9, "h3": 9, "h4": 9, "h5": 9, "h6": 9, "have": 6, "head": 9, "hello": 14, "help": 1, "helper": 9, "hint": 1, "hour": 6, "how": 1, "html": [6, 9], "htmx": 15, "http": 2, "i": [0, 9], "id": 6, "ilik": 6, "img": 9, "imperson": 12, "import": 6, "includ": 8, "index": 6, "indic": 16, "inform": 8, "inherit": 6, "inject": [5, 9], "inner": 6, "input": 9, "insert": 6, "insid": 12, "instal": 2, "internation": 10, "introduct": 6, "is_alphanumer": 11, "is_dat": 11, "is_date_in_rang": 11, "is_datetim": 11, "is_datetime_in_rang": 11, "is_decimal_in_rang": 11, "is_email": 11, "is_empty_or": 11, "is_equal_to": 11, "is_expr": 11, "is_fil": 11, "is_float_in_rang": 11, "is_imag": 11, "is_in_db": 11, "is_in_set": 11, "is_int_in_rang": 11, "is_ipaddress": 11, "is_ipv4": 11, "is_ipv6": 11, "is_json": 11, "is_length": 11, "is_list_of": 11, "is_list_of_email": 11, "is_low": 11, "is_match": 11, "is_not_empti": 11, "is_not_in_db": 11, "is_null_or": 11, "is_slug": 11, "is_strong": 11, "is_tim": 11, "is_upload_filenam": 11, "is_upp": 11, "is_url": 11, "isempti": 6, "iter": 6, "j": 15, "join": 6, "kei": [6, 13], "keyword": 6, "label": 9, "languag": 8, "last": 6, "layer": 6, "layout": 8, "lazi": 6, "ldap": 12, "left": 6, "legaci": 6, "len": 6, "less": 6, "li": 9, "like": 6, "limitbi": 6, "line": 2, "list": 6, "local": 2, "locat": 6, "logic": 6, "login": 3, "lower": 6, "main": 3, "make": 6, "mani": 6, "manipul": 11, "manual": [1, 16], "max": 6, "memcach": 5, "memoiz": 5, "memori": 6, "method": [6, 14], "microsoft": 6, "migrat": 6, "min": 6, "minim": 11, "minut": 6, "mobil": 8, "model": 6, "modern": 1, "modif": 6, "month": 6, "more": 6, "mssql": 6, "multipl": [5, 12], "mysql": 6, "name": 6, "new": 6, "new_app": 2, "nosql": 6, "note": 6, "o": 14, "oauth2": 12, "object": [4, 12, 13, 15], "ol": 9, "old": 6, "on_defin": 6, "onc": 6, "one": 6, "oper": 6, "option": [2, 9, 11], "oracl": 6, "orderbi": 6, "orderby_on_limitbi": 6, "other": [6, 11], "outer": 6, "overview": 9, "p": 9, "page": [3, 4, 8], "pam": 12, "paramet": [6, 11, 13], "permiss": 12, "pip": 2, "platform": 2, "plugin": 12, "plural": [6, 10], "podman": 2, "polici": 7, "polymodel": 6, "pool": 6, "practic": 7, "pre": 9, "prerequisit": [1, 2], "primari": 6, "primarykei": 6, "procedur": 2, "py4web": [0, 1, 6, 14, 15, 16], "pycharm": 1, "python": 1, "pythonanywher": 2, "q": 15, "queri": 6, "quick": 6, "quot": 6, "rang": 11, "raw": 6, "real": 6, "record": 6, "recurs": 6, "redefin": 6, "redi": 5, "redirect": 14, "refer": [6, 13, 16], "regexp": 6, "relat": 6, "remot": 6, "render": 6, "replic": 6, "repres": 6, "represent": 6, "request": 4, "reserv": 6, "resourc": 1, "respons": 7, "restapi": 7, "return": [4, 8, 14], "rname": 6, "rollback": 6, "rout": 4, "row": 6, "run": [2, 6], "sampl": 13, "schedul": 15, "scratch": 4, "script": 9, "search": 13, "second": 6, "secur": [6, 11], "select": [6, 9], "self": 6, "sequence_nam": 6, "server": [1, 5, 6, 9], "session": 5, "set": [6, 11, 13, 14], "set_password": 2, "setup": 2, "share": 5, "shell": [2, 6], "shortcut": 6, "side": [5, 9], "sidecar": 11, "signatur": 6, "simpl": 14, "singular": 6, "sort": [6, 11], "sourc": [1, 2], "span": 9, "special": [2, 11], "sql": 6, "sqlite": 6, "stand": 6, "standard": [8, 11], "startswith": 6, "startup": 2, "static": 4, "string": [6, 15], "structur": [8, 11], "style": [6, 9, 13], "substr": 6, "sum": 6, "summari": 6, "super": 8, "support": [2, 6], "synchron": 6, "syntax": 8, "t": 15, "tabl": [6, 9, 16], "table_class": 6, "tag": [6, 9, 11, 12], "tbodi": 9, "td": 9, "templat": [4, 5, 8, 13], "text": 11, "textarea": 9, "th": 9, "thead": 9, "thi": 1, "time": [6, 11], "tip": 1, "titl": 9, "topic": 15, "tour": 6, "tr": 9, "transact": 6, "translat": [5, 10], "trigger_nam": 6, "try": 8, "tt": 9, "tupl": 11, "tutori": 1, "two": 12, "two_factor_requir": 12, "two_factor_send": 12, "two_factor_tri": 12, "type": [6, 11], "ubuntu": 2, "ui": 12, "ul": 9, "understand": 2, "up": 14, "updat": [6, 10], "update_or_insert": 6, "update_record": 6, "upgrad": 2, "upload": [6, 11], "upper": 6, "uri": 6, "url": 9, "urlsign": 5, "us": [2, 5, 6, 8, 9, 12, 13, 15], "usag": 15, "user": 12, "util": 15, "valid": [6, 11], "validate_and_insert": 6, "validate_and_upd": 6, "valu": [4, 6], "variabl": [8, 14], "version": [2, 6], "video": 1, "view": 14, "virtual": [2, 6], "vscode": 1, "watch": 4, "web": [3, 4], "web2pi": 14, "what": 0, "while": 8, "widget": [11, 15], "without": [2, 6, 11], "workflow": 8, "workplac": 1, "world": 14, "wsgi": 2, "xml": [6, 9], "yatl": [8, 9], "year": 6}}) \ No newline at end of file diff --git a/apps/_documentation/static/pt/.buildinfo b/apps/_documentation/static/pt/.buildinfo index b960aa2f2..0ee6782e1 100644 --- a/apps/_documentation/static/pt/.buildinfo +++ b/apps/_documentation/static/pt/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: c8772163e226a6a3746060cffc0214eb +config: d2bde93e954cf6ead55363cc5873de58 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/apps/_documentation/static/pt/_images/form2.png b/apps/_documentation/static/pt/_images/form2.png deleted file mode 100644 index b83647c2fd7639a88faec31dccda6191d32af82e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40409 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 V{pno7&r<-YX+L_RUaDph@;`6u_v`=w diff --git a/apps/_documentation/static/pt/_images/form3.png b/apps/_documentation/static/pt/_images/form3.png deleted file mode 100644 index 3de9bbba91accbd3214b36b1f77fc7529dd31c4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37805 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 Yc|z^m#ml>E4Hh($ diff --git a/apps/_documentation/static/pt/_images/form4.png b/apps/_documentation/static/pt/_images/form4.png deleted file mode 100644 index 9534e468393818f575e4f09686661df752fd9acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46250 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 RP5_Wi;+u?Uxv=i<{{i#JLm&VE diff --git a/apps/_documentation/static/pt/_images/form5.png b/apps/_documentation/static/pt/_images/form5.png deleted file mode 100644 index 9b88b04ada442ec5bc56395aa6b1255392bff04c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39765 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

          18L%J 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 XZ_KwSmJ;zQM1)ISMO(Q-(JJzPojxlp diff --git a/apps/_documentation/static/pt/_images/form6.png b/apps/_documentation/static/pt/_images/form6.png deleted file mode 100644 index 9761c347e96b8013335296bec2163402d16c9330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38066 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 F{||)n@zwwU diff --git a/apps/_documentation/static/pt/_static/documentation_options.js b/apps/_documentation/static/pt/_static/documentation_options.js index 7e6ed6f95..2565339fb 100644 --- a/apps/_documentation/static/pt/_static/documentation_options.js +++ b/apps/_documentation/static/pt/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.20240420.2', + VERSION: '1.20240530.2', LANGUAGE: 'pt', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/apps/_documentation/static/pt/chapter-01.html b/apps/_documentation/static/pt/chapter-01.html index 80a9e9d83..d31155bc1 100644 --- a/apps/_documentation/static/pt/chapter-01.html +++ b/apps/_documentation/static/pt/chapter-01.html @@ -4,7 +4,7 @@ - O que é py4web? — Documentação py4web 1.20240420.2 + O que é py4web? — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@

          - 1.20240420.2 + 1.20240530.2
          @@ -190,7 +190,7 @@

          Acknowledgmentssugizo

        • valq7711

        • Kevin Keller

        • -
        • Sam de Alfaro (logo design)

        • +
        • Sam de Alfaro sam@dealfaro.com (logo design)

        Special thanks to Sam de Alfaro, who designed the official logo of py4web. We friendly call the logo «Axel the axolotl»: it magically represents the sense of kindness and inclusion. We believe it’s the cornerstone of our growing community.

        _images/logo.png @@ -233,7 +233,7 @@

        Acknowledgments - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-02.html b/apps/_documentation/static/pt/chapter-02.html index 9cb011867..c047a0e01 100644 --- a/apps/_documentation/static/pt/chapter-02.html +++ b/apps/_documentation/static/pt/chapter-02.html @@ -4,7 +4,7 @@ - Ajuda, recursos e dicas — Documentação py4web 1.20240420.2 + Ajuda, recursos e dicas — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -267,7 +267,7 @@

        Como contribuir - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-03.html b/apps/_documentation/static/pt/chapter-03.html index 6021f3072..fb5ec0abb 100644 --- a/apps/_documentation/static/pt/chapter-03.html +++ b/apps/_documentation/static/pt/chapter-03.html @@ -4,7 +4,7 @@ - Instalação e colocação em funcionamento — Documentação py4web 1.20240420.2 + Instalação e colocação em funcionamento — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -44,7 +44,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -691,7 +691,7 @@

        Deployment on Ubuntu - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-04.html b/apps/_documentation/static/pt/chapter-04.html index d8db6bfae..cd5314ab7 100644 --- a/apps/_documentation/static/pt/chapter-04.html +++ b/apps/_documentation/static/pt/chapter-04.html @@ -4,7 +4,7 @@ - O Dashboard — Documentação py4web 1.20240420.2 + O Dashboard — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -190,7 +190,7 @@

        Sessão no Dashboard - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-05.html b/apps/_documentation/static/pt/chapter-05.html index f0617dd30..83ae4476c 100644 --- a/apps/_documentation/static/pt/chapter-05.html +++ b/apps/_documentation/static/pt/chapter-05.html @@ -4,7 +4,7 @@ - Creating an app — Documentação py4web 1.20240420.2 + Creating an app — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -447,7 +447,7 @@

        Watch for files change - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-06.html b/apps/_documentation/static/pt/chapter-06.html index 6e504b94a..695516ca4 100644 --- a/apps/_documentation/static/pt/chapter-06.html +++ b/apps/_documentation/static/pt/chapter-06.html @@ -4,7 +4,7 @@ - Fixures — Documentação py4web 1.20240420.2 + Fixures — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -679,6 +679,19 @@

        The Auth fixtureauth_user table is defined before calling auth.enable() +the provided table withh be used.

        +

        It is also possible to add extra_fields to the auth_user table, +for example:

        +
        extra_fields = [
        +   Field("favorite_color"),
        +]
        +auth = Auth(session, db, extra_fields=extra_fields)
        +
        +
        +

        In any case, we recommend not to pollute the auth_user table with +extra fields but, instead, to use one of more additional custom +tables that reference users and store the required information.

        The auth object exposes the method:auth.enable() which registers multiple actions including {appname}/auth/login. It requires the presence of the auth.html template and the @@ -955,7 +968,7 @@

        Decoradores de conveniência - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-07.html b/apps/_documentation/static/pt/chapter-07.html index 0a7e5d11e..a84626fa1 100644 --- a/apps/_documentation/static/pt/chapter-07.html +++ b/apps/_documentation/static/pt/chapter-07.html @@ -4,7 +4,7 @@ - The Database Abstraction Layer (DAL) — Documentação py4web 1.20240420.2 + The Database Abstraction Layer (DAL) — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -3827,7 +3827,7 @@

        Google NoSQL (Datastore) - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-08.html b/apps/_documentation/static/pt/chapter-08.html index 7ffdbb786..b64110cd4 100644 --- a/apps/_documentation/static/pt/chapter-08.html +++ b/apps/_documentation/static/pt/chapter-08.html @@ -4,7 +4,7 @@ - The RestAPI — Documentação py4web 1.20240420.2 + The RestAPI — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -1169,7 +1169,7 @@

        The RestAPI response - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-09.html b/apps/_documentation/static/pt/chapter-09.html index 4b272f3c3..7a3ebde6b 100644 --- a/apps/_documentation/static/pt/chapter-09.html +++ b/apps/_documentation/static/pt/chapter-09.html @@ -4,7 +4,7 @@ - Linguagem de template YATL — Documentação py4web 1.20240420.2 + Linguagem de template YATL — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -734,7 +734,7 @@

        Mobile development - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-10.html b/apps/_documentation/static/pt/chapter-10.html index ee58db4d6..7244af72a 100644 --- a/apps/_documentation/static/pt/chapter-10.html +++ b/apps/_documentation/static/pt/chapter-10.html @@ -4,7 +4,7 @@ - Helpers YATL — Documentação py4web 1.20240420.2 + Helpers YATL — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -843,7 +843,7 @@

        Using Inject - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-11.html b/apps/_documentation/static/pt/chapter-11.html index 313770e77..7dd6772fa 100644 --- a/apps/_documentation/static/pt/chapter-11.html +++ b/apps/_documentation/static/pt/chapter-11.html @@ -4,7 +4,7 @@ - Internacionalização — Documentação py4web 1.20240420.2 + Internacionalização — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -212,7 +212,7 @@

        Atualizar os arquivos de tradução - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/chapter-12.html b/apps/_documentation/static/pt/chapter-12.html index e1ed196f8..6b6cd06d1 100644 --- a/apps/_documentation/static/pt/chapter-12.html +++ b/apps/_documentation/static/pt/chapter-12.html @@ -4,7 +4,7 @@ - Forumlários — Documentação py4web 1.20240420.2 + Forumlários — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -187,8 +187,59 @@

        Forumlários

        The Form class provides a high-level API for quickly building CRUD (create, update and delete) forms, especially for working on an existing database table. It can generate and process a form from a -list of desired fields and/or from an existing database table. -It is a pretty much equivalent to web2py’s SQLFORM.

        +list of desired fields and/or from an existing database table.

        +

        There are 3 typs of forms:

        +

        CRUD Create forms:

        +
        @action('create_thing')
        +@action.uses('generic.html', db, flash)
        +def create_thing():
        +    form = Form(db.thing)
        +    if form.accepted:
        +        flash.set("record created")
        +        redirect(URL('other_page'))
        +    return locals()
        +
        +
        +

        CRUD Update forms:

        +
        @action('update_thing/<thing_id:int>')
        +@action.uses('generic.html', db, flash)
        +def update_thing(thing_id):
        +    form = Form(db.thing, thing_id)
        +    if form.accepted:
        +        flash.set("record updated")
        +        redirect(URL('other_page'))
        +    return locals()
        +
        +
        +

        Non-CRUD forms (not associated to a database):

        +
        @action('some_form')
        +@action.uses('generic.html', flash)
        +def some_form():
        +    fields = [
        +        Field("name", requires=IS_NOT_EMPTY()),
        +        Field("color", required=IS_IN_SET(["red","blue","green"])),
        +    ]
        +    form = Form(fields)
        +    if form.accepted:
        +        flash.set("information recorded")
        +        redirect(URL('other_page'))
        +    return locals()
        +
        +
        +

        The use of flash is optional. flash is defined in common.py +in the scaffolding application. It simply stores a message in a cookie +so it can be recovered and displayed after redirection. +This is done in the default layout.

        +

        In this chapter from now on we will assume the following model and +an app derived from the scaffolding app:

        +
        db.define_table(
        +    'thing',
        +    Field('name', requires=IS_NOT_EMPTY()),
        +    Field('color', requires=IS_IN_SET('red','blue','green'])),
        +    Field('image', 'upload'),
        +)
        +
        +

        The Form constructor

        O `` construtor Form`` aceita os seguintes argumentos:

        @@ -232,21 +283,21 @@

        The Form constructorA minimal form example without a database

        Let’s start with a minimal working form example. Create a new minimal app called form_minimal :

        -
        # in form_minimal/__init__.py
        -from py4web import action, Field, redirect, URL
        +
        # in controllers.py
        +from py4web impot action, redirect, URL, Field
         from py4web.utils.form import Form
        -from pydal.validators import IS_NOT_EMPTY
        -
        +from pydal.validators import *
         
         @action('index', method=['GET', 'POST'])
         @action.uses('form_minimal.html')
         def index():
        -    form = Form([
        -        Field('product_name'),
        -        Field('product_quantity', 'integer', requires=IS_NOT_EMPTY()),
        -        ])
        +    fields = [
        +        Field('name', requires=IS_NOT_EMPTY()),
        +        Field('color', requires=IS_SET(['red','blue','green']),
        +    ]
        +    form = Form(fields)
             if form.accepted:
        -        # Do something with form.vars['product_name'] and form.vars['product_quantity']
        +        # Do something with form.vars['name'] and form.vars['color']
                 redirect(URL('accepted'))
             if form.errors:
                 # display message error
        @@ -285,30 +336,18 @@ 

        A minimal form example without a database

        In this next basic example we generate a form from a database. Create a new minimal app called form_basic :

        -
        # in form_basic/__init__.py
        -import os
        -from py4web import action, Field, DAL
        -from py4web.utils.form import Form, FormStyleDefault
        -from pydal.validators import IS_NOT_EMPTY, IS_IN_SET
        -
        -# database definition
        -DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases')
        -if not os.path.isdir(DB_FOLDER):
        -    os.mkdir(DB_FOLDER)
        -db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER)
        -db.define_table(
        -    'person',
        -    Field('superhero', requires=IS_NOT_EMPTY()),
        -    Field('realname'),
        -    Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])),
        -)
        +
        # in controllers.py
        +from py4web impot action, redirect, URL, Field
        +from py4web.utils.form import Form
        +from pydal.validators import *
        +from .common import db
         
         # controllers definition
         @action("index", method=["GET", "POST"])
         @action.uses("form_basic.html", db)
         def index(id=None):
        -    form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault)
        -    rows = db(db.person).select()
        +    form = Form(db.thing, id, deletable=False, formstyle=FormStyleDefault)
        +    rows = db(db.thing).select()
             return dict(form=form, rows=rows)
         
        @@ -319,7 +358,9 @@

        Basic form exampleValidação de formulário paragraph.

        You will also need a template file templates/form_basic.html that contains, for example, the following code:

        -
        <h2 class="title">Form Basic example: Superhero Identity</h2>
        +
        [[extend "layout.html"]]
        +
        +<h2 class="title">Form Basic example: My Things</h2>
         
         [[=form]]
         
        @@ -327,7 +368,7 @@ 

        Basic form example<ul> [[for row in rows:]] -<li>[[=row.id]]: [[=row.superhero]] ([[=row.realname]]) from [[=row.universe]]</li> +<li>[[=row.id]]: [[=row.name]] has color [[=row.color]]</li> [[pass]] </ul>

        @@ -335,12 +376,12 @@

        Basic form examplehttp://127.0.0.1:8000/form_basic : the result is an input form on the top of the page, and the list of all the previously added entries on the bottom:

        -_images/form2.png +images/form2.png###FIXTHIS

        This is a simple example and you cannot change nor delete existing records. But if you’d like to experiment, the database content can be fully seen and changed with the Dashboard app.

        -

        Notice that py4web by default let you choose the value of the universe field using -a dropdown menu:

        -_images/form3.png +

        Notice that py4web by default let you choose the value of the color field using +a dropdown menu.

        +images/form3.png###FIXTHIS

        The basic form usage is quite useful for rapid prototyping of programs, since you don’t need to specify the layout of the form. On the other hand, you cannot change its default behaviour.

        @@ -349,34 +390,22 @@

        File upload fieldyour_app/upload folder will be used (and the folder will also be created if needed). Let’s look at a simple example:

        -
        # in form_upload/__init__.py
        -import os
        -from py4web.core import required_folder
        -from py4web import action, Field, DAL
        +
        # in controllers.py
        +from py4web impot action, redirect, URL, Field
         from py4web.utils.form import Form, FormStyleDefault
        -from pydal.validators import IS_NOT_EMPTY
        -
        -# database definition
        -DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases')
        -if not os.path.isdir(DB_FOLDER):
        -    os.mkdir(DB_FOLDER)
        -db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER)
        -db.define_table(
        -    'person',
        -    Field('superhero', requires=IS_NOT_EMPTY()),
        -    Field('image', "upload", label='Superhero Image', requires=IS_NOT_EMPTY()),
        -)
        +from pydal.validators import *
        +from .common import db
         
         @action("index", method=["GET", "POST"])
         @action.uses("form_upload.html", db)
         def upload(id=None):
        -    form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault)
        -    rows = db(db.person).select()
        +    form = Form(db.thing, id, deletable=False, formstyle=FormStyleDefault)
        +    rows = db(db.thing).select()
             return dict(form=form, rows=rows)
         

        And in templates/form_upload.html :

        -

        @@ -415,31 +445,19 @@

        Standard widgets

      -

      You will also need a template file templates/form_widgets.html that -contains the following code (as the form_basic.html) :

      -
      <h2 class="title">Form Widget example: Superhero Identity</h2>
      -
      -[[=form]]
      -
      -<h2 class="title">Rows</h2>
      -
      -<ul>
      -[[for row in rows:]]
      -<li>[[=row.id]]: [[=row.superhero]] ([[=row.realname]]) from [[=row.universe]]</li>
      -[[pass]]
      -</ul>
      -
      -

      The result is the same as before, but now we have a radio button widget instead of the dropdown menu!

      -_images/form4.png +images/form4.png###FIXME

      Using widgets in forms is quite easy, and they’ll let you have more control on its pieces.

  • Custom widgets

    You can also customize the widgets properties by subclassing the FormStyleDefault class. Let’s have a quick look, improving again our Superhero example:

    -
    #
    -# in form_custom_widgets/__init__.py
    -#
    -import os
    -from py4web import action, Field, DAL
    +
    # in controllers.py
    +from py4web impot action, redirect, URL, Field
     from py4web.utils.form import Form, FormStyleDefault, RadioWidget
    -from pydal.validators import IS_NOT_EMPTY, IS_IN_SET
    -from yatl.helpers import INPUT, DIV
    -
    -# database definition
    -DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases')
    -if not os.path.isdir(DB_FOLDER):
    -    os.mkdir(DB_FOLDER)
    -db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER)
    -db.define_table(
    -    'person',
    -    Field('superhero', requires=IS_NOT_EMPTY()),
    -    Field('realname'),
    -    Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])),
    -)
    +from pydal.validators import *
    +from .common import db
     
     # custom widget class definition
     class MyCustomWidget:
    @@ -522,33 +510,17 @@ 

    Custom widgetsdef index(id=None): MyStyle = FormStyleDefault MyStyle.classes = FormStyleDefault.classes - MyStyle.widgets['superhero']=MyCustomWidget() - MyStyle.widgets['realname']=MyCustomWidget() - MyStyle.widgets['universe']=RadioWidget() + MyStyle.widgets['name']=MyCustomWidget() + MyStyle.widgets['color']=RadioWidget() - form = Form(db.person, id, deletable=False, formstyle=MyStyle) - rows = db(db.person).select() + form = Form(db.thing, id, deletable=False, formstyle=MyStyle) + rows = db(db.thing).select() return dict(form=form, rows=rows)

    -

    You will also need a template file templates/form_custom_widgets.html that -contains the following code (as the form_basic.html) :

    -
    <h2 class="title">Form Custom Widgets example: Superhero Identity</h2>
    -
    -[[=form]]
    -
    -<h2 class="title">Rows</h2>
    -
    -<ul>
    -[[for row in rows:]]
    -<li>[[=row.id]]: [[=row.superhero]]  ([[=row.realname]]) from [[=row.universe]] </li>
    -[[pass]]
    -</ul>
    -
    -

    The result is similar to the previous ones, but now we have a custom input field, with foreground color red and background color black:

    -_images/form5.png +images/form5.png###FIXME

    Even the radio button widget has changed, from red to blue.

    @@ -591,8 +563,6 @@

    Custom forms

    Aviso

    @@ -604,6 +574,32 @@

    Custom forms +
    <div class=»select»>

    <input name=»name» value=»form.vars.get(“name”, “”)»/>

    +
    + +

    </div> +<div class=»select»> +[[for color in [“red”, “blue”, “green”]:]]

    +
    +

    <label>[[=color]]</label> +<input name=»color» type=»radio» value=»[[=color]]»

    +
    +

    [[if form.vars.get(“color”) == color]]checked[[pass]]

    +
    +

    />

    +
    +

    [[pass]] +</div> +<input type=»submit» value=»Click me»/> +[[=form.custom.end ]]

    +

    The sidecar parameter

    @@ -1618,7 +1614,7 @@

    Validation functions - v: 1.20240420.2 + v: 1.20240530.2

    Aqui `` @ action.uses (auth.user) `` diz py4web que essa ação requer um usuário conectado e deve redirecionar para login se nenhum usuário está logado.

    @@ -604,7 +604,7 @@

    User Impersonation - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/pt/chapter-14.html b/apps/_documentation/static/pt/chapter-14.html index 458cf6383..17a08e7f9 100644 --- a/apps/_documentation/static/pt/chapter-14.html +++ b/apps/_documentation/static/pt/chapter-14.html @@ -4,7 +4,7 @@ - Rede — Documentação py4web 1.20240420.2 + Rede — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -627,7 +627,7 @@

    Os campos de referência - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/pt/chapter-15.html b/apps/_documentation/static/pt/chapter-15.html index 4a080e412..3b00bfe8f 100644 --- a/apps/_documentation/static/pt/chapter-15.html +++ b/apps/_documentation/static/pt/chapter-15.html @@ -4,7 +4,7 @@ - De web2py para py4web — Documentação py4web 1.20240420.2 + De web2py para py4web — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -491,7 +491,7 @@

    “auth” example - v: 1.20240420.2 + v: 1.20240530.2
    diff --git a/apps/_documentation/static/pt/chapter-16.html b/apps/_documentation/static/pt/chapter-16.html index 226e3b865..46fde01d6 100644 --- a/apps/_documentation/static/pt/chapter-16.html +++ b/apps/_documentation/static/pt/chapter-16.html @@ -4,7 +4,7 @@ - Advanced topics and examples — Documentação py4web 1.20240420.2 + Advanced topics and examples — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240420.2 + 1.20240530.2
    @@ -70,6 +70,8 @@
  • Rede
  • De web2py para py4web
  • Advanced topics and examples
      +
    • The scheduler
    • +
    • Celery
    • py4web and asyncio
    • htmx
      • htmx usage in Form
      • @@ -113,6 +115,73 @@

        Advanced topics and examples

        +
        +

        The scheduler

        +

        Py4web has a built-in scheduler. There is nothing for you to install or configure to make it work.

        +

        Given a task (just a python function), you can schedule async runs of that function. +The runs can be a one-off or periodic. They can have timeout. They can be scheduled to run at a given scheduled time.

        +

        The scheduler works by creating a table task_run and enqueueing runs of the predefined task as table records. +Each task_run references a task and contains the input to be passed to that task. The scheduler will caputure the +task stdout+stderr in a db.task_run.log and the task output in db.task_run.output.

        +

        A py4web thread loops and finds the next task that needs to be executed. For each task it creates a worker process +and assigns the task to the worker process. You can specify how many worker processes should run concurrently. +The worker processes are daemons and they only live for the life of one task run. Each worker process is only +responsible for executing that one task in isolation. The main loop is responsible for assigning tasks and timeouts.

        +

        The system is very robust because the only source of truth is the database and its integrity is guaranteed by +transational safety. Even if py4web is killed, running tasks continue to run unless they complete, fail, or are +explicitely killed.

        +

        Aside for allowing multiple concurrent task runs in execution on one node, +it is also possible to run multiple instances of the scheduler on different computing nodes, +as long as they use the same client/server database for task_run and as long as +they all define the same tasks.

        +

        Here is an example of how to use the scheduler:

        +
        from pydal.tools.scheduler import Scheduler, delta, now
        +from .common import db
        +
        +# create and start the scheduler
        +scheduler = Scheduler(db, sleep_time=1, max_concurrent_runs=1)
        +scheduler.start()
        +
        +# register your tasks
        +scheduler.register_task("hello", lambda **inputs: print("hi!"))
        +scheduler.register_task("slow", lambda: time.sleep(10))
        +scheduler.register_task("periodic", lambda **inputs: print("I am periodic!"))
        +scheduler.register_task("fail", lambda x: 1 / x)
        +
        +# enqueue some task runs:
        +
        +scheduler.enqueue_run(name="hello")
        +scheduler.enqueue_run(name="hello", scheduled_for=now() + delta(10) # start in 10 secs
        +scheduler.enqueue_run(name="slow", timeout=1) # 1 secs
        +scheduler.enqueue_run(name="periodic", period=10) # 10 secs
        +scheduler.enqueue_run(name="fail", inputs={"x": 0})
        +
        +
        +

        Notice that in scaffolding app, the scheduler is created and started in common if +USE_SCHEDULER=True in settings.py.

        +

        You can manage your task runs busing the dashboard or using a Grid(path, db.task_run).

        +

        To prevent database locks (in particular with sqlite) we recommand:

        +
          +
        • Use a different database for the scheduler and everything else

        • +
        • Always db.commit() as soon as possible after any insert/update/delete

        • +
        • wrap your database logic in tasks in a try…except as in

        • +
        +
        def my_task():
        +    try:
        +        # do something
        +        db.commit()
        +    except Exception:
        +        db.rollback()
        +
        +
        +
        +
        +

        Celery

        +

        Yes. You can use Celery instead of the build-in scheduler but it adds complexity and it is less robust. +Yet the build-in schduler is designed for long running tasks and the database can become a bottle neck +if you have hundrands running concurrently. Celery may work better if you have more than 100 concurrent +tasks and/or they are short running tasks.

        +

        py4web and asyncio

        Asyncio is not strictly needed, at least for most of the normal use @@ -759,7 +828,7 @@

        The T object - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/genindex.html b/apps/_documentation/static/pt/genindex.html index c6430b898..b03783f6e 100644 --- a/apps/_documentation/static/pt/genindex.html +++ b/apps/_documentation/static/pt/genindex.html @@ -3,7 +3,7 @@ - Índice — Documentação py4web 1.20240420.2 + Índice — Documentação py4web 1.20240530.2 @@ -17,7 +17,7 @@ - + @@ -41,7 +41,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -135,7 +135,7 @@

        Índice

        - v: 1.20240420.2 + v: 1.20240530.2
        diff --git a/apps/_documentation/static/pt/index.html b/apps/_documentation/static/pt/index.html index 8178f7592..d95e6f0cc 100644 --- a/apps/_documentation/static/pt/index.html +++ b/apps/_documentation/static/pt/index.html @@ -4,7 +4,7 @@ - py4web: o manual de referência — Documentação py4web 1.20240420.2 + py4web: o manual de referência — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
        - 1.20240420.2 + 1.20240530.2
        @@ -226,6 +226,8 @@

        py4web: o manual de referênciaAdvanced topics and examples
          +
        • The scheduler
        • +
        • Celery
        • py4web and asyncio
        • htmx
        • utils.js
        • @@ -278,7 +280,7 @@

          Índices e tabelas - v: 1.20240420.2 + v: 1.20240530.2
          diff --git a/apps/_documentation/static/pt/objects.inv b/apps/_documentation/static/pt/objects.inv index a03774d0552aa04c700bd3cc0f5dbb40f3267548..f18c099053a003fb6b8b8e71dff76e356fd19ef2 100644 GIT binary patch delta 9188 zcmV{^1kwZ}l_IhC0sL`ccYmuE@f7f5$)~oCr)4be*97I z0>1ne12sY>ESs;d?afZWD*@zdWpCoi`yZ~)j}cW}C+VUFn9h@!-e+l5hZ?Lag)jvm z1+Ni;Ey2ckLKAy3P&7BXsneTv=!%>ia(#O=xtg6E{~!dJ&6icEWgDMG_l#Nva~qsjZL3j{(pr0sYuZI;b7f8E;Q%Ox1yO$U(y>j_QVl98e&hmT)? zOj?;$QLp(;Vlq=3e%%y_uESl8OiD-;;}t`xJ6lC@Pg8t&bb2&9k~dBlHmzJ2b+GGD zC_cFS;bInHt8c#i^2^fHO__%VKFBJTq(+#V_|L!pkJw?6EWHcea}XggN+P1PMW~xl ze}*t53m~%!X)!AV9G$WFgIP4S8DVZ)NrZQCL{pnQ@dGT)7g>{-P@gf1#+M*s{)lMg zBVfNtGk{&ExmO^c*d}OnSrYh3jl2V#4CLbuwTZj5q?fK~us2aA#y?&j2cCJ54!}2+ zEk`sHS|=!l0B)S)i+hAIGm^%#YM*PIe-Xoq06~3$(!Lj%#>7m4%(jHFp9aT0$U)~K z$%QU84f-^948gI8GSmQ)6%g9gZ{X2c*fN2CMQJLN*LuL@|8>izYsE;lffOx{+M$Qnz2J+t=#$Yjyhu+we~4e`CiV zzx&F)c2e)^Fzex)l_rX?im(c>O0WvCsD>20x3#Wd#Lr9cjgaMzl|24jrg*nJzXt>y|G#n#o1d%>&fZGJ8%=ujxJ9Qm=LE-u!z^C&X;Bc zBg&(JC3&PgoXn1{Pu^c&PTs#gYB@(zIffQkr>ngigqSCdnw^|&YZ%Jze?i-26B4t4 zk(=$+Muzm8cyw@bHaXpBp;_rP8^K6&NON>HIXQJ$aEz{PISP)BmMxj#Vg_rSOCkB# zz_rzO3<-*=+7iicui#o{=R)#OjA{jl5%_l(q8;YsG5v{R2s}PHm43U)tgiRDB?Rc* zkmJ+y$!z0xz+D@~Msi33f49_Q^Xp_j2Aiv7PT2R?hu`+GIMvsBxlHrrI3Akp9l~)E z&5S?v{FSN4H4X%YX?ircdtG0%{bs20ls12PnFF_08tEqznPxDe`jE3@@0KH0?L92 zK0SK>cJ@x-X;oj_8@5Sfx(xx!-mr0^zB@gc&aTgo*-A}&wBz|YM8aV2%^3Saa)dtr z{zxng_=JlwT|#n*J)6u9q(i`kxt7&u5D&6!Ws&3k`HanM%QMzGAdj~Y$kVYBd6Q-1 z>^(|~xqp9kdg`rxf0Z@M5pWbk?DX{NtpMxN=A)n_NZ{G!`FnwnoP^y3+)lnt0d_l~ zc_P=NI2fTE0_mTmwG zUKi%?{OY;|hAt6I6hdiUb0}^;H13<2d8ujr27%&Lx-7Mel-=kL=GuQUtX0GmVwAi= z_OmWw+-C%Rf4RB8)QEf&^|+ z$UzMYsx4fE;QV5Ca{iv7Wn#*?L=~5%Z3_1$OIK;_-Xw5O(|jSZNLZbwXan)J5M0A` z^bkK;43H3!xe?q#FK)xv$%IN8ql8ttCMedfoE-Fve-lBS3e_pnM3>sVzPNXRaj(5` z{}SWwHO9LxGH$OjZZ9*I>xAwtLN|rNninjaHKoqlLkKqTIE;RsFK zlA$7-tyeZN!C{m228E$HW>CU_N_)zt4N980z}Q`l+`1yIiLRh!9~)E34JGHEW(s>BG=YR8 z*B+%&?QdJAc3m@QD z$lK(5+D1T(u#3bC{MDjNi(t%%rKs-?E>A8ve`-{j%q+rCk|OBQ>CwRk)LqzMU$L~i zD9*m{RrDy~rsoTDJ>-M6j4bT?e%eP9UwvKZs=5aYv*#Vaap#~TZbe@ct8R+@bvDH~ zWev}U)veh(r%9MGT9_NP6goKlp$y%GiwRGCRlUxFMvR0AHv8d}4O!K!_`%k9GC!=` zeSzUu{8wxHc2 zQAMK2H0vTA6Dz94XRL#PdFHH3Rnwz0n|yofvXiq*_u^3amtnRgvv9<@9+OS4T{?Z{ z^XavD05{nLOC_8fp^ttyn_M1o;lw};f5Aa-3G`0HN2D-nm&2I(Bu1Uq;gLu}ggcqZ zNUY0rxisY{V6T$L|GJh^7arK0werFx&WfaCImr^m=Zic=(@ihh^f1QOG3!-Jxc@bA)HZs;DqAuB%io8S`6h1R=KhS zPqcV~x3($$Jb~2&&een^aS}Avf5@$fRso|zG9^4pD6lC%_$I`iHpIRWaodWx*NoV= zBhvT{rfXtKSepmEDxh;Ps(^V<4QycMu{dbBj!X#+y5=h-G)iccR-R@uRv|VGmL6pu z7i;(~kHL%iP-J?s%l~bgLNLWJ)xxe;ab_2wIWcivf|BgkI&#M7NH0F*fA&5z$#MlY zY}d-l#e&96LM)+jo zg}ubs)^;6Yqfk;g$qV@pgKGkJEysQ$Tg8M;I)V#?PICD428SyU>8C{eo@^nu8b7jS z`e~qsq^qGtbFF3%Jqgfn>TfC<>v(nhC?*)G-qgs1_+iv<8GivDf8vN6;!&cAP?Ifm zGx!4aSeQr(EW!gLlq^jxUjyMoV2E|Fim{@Tu#+zJ_nXua*tm4jH-du?4axV+Yy9mK z3SnKAX%b+4-DO4j4c0D&uvTmE>K+1BvcxBn(-i-ic>ee^e5#{)lV+IUiD3~}z^ol8 zl@)2_q`%#OM-+2=f5D+QG>V}TR}fRJu%OL~UlAJ(Xc+e^v$E-@U4(C1LK@2OBssu= zkeK+4Kk>92YpB9)L`o+-mH#k~d@Hl;Ggb@ZKdgDJVh|IDmA$+dF_)@R|A;>rxE7(p zaII9XiEk-IuN}{_ghfJ`TQZ+Ow1Sx>&MoFYQcSAh$AqPJf4|_O!3r+{+EX{+d43Wb zxzKkoX}P+soAhC5zVkPdFjBAOF$Y_zq6IX*To0RuXYm0^MXk#~fW$7gI1=%B{IN0d z<9~uT^7`J)|GtI2+6rTn5Kn$;68!>iQ&Uzn;U_pbx9G37qIqCotyQfvDHDWVx9A+n zyH$MCN05&UvEWx&4>e7f!F-d#kwe3)SIm+?%nt} zec(IcN8DCv9*6Pl)epMTe%(@CnyQ{$oV19) z*@|F$7@uMgUN6mxoK6GQ6i53Hli6w1+PiH8Vg=)Oe`5UlkgcQXm1^3QT)4;~_#h1kHQ@ZD^K(FK#tWH#`H94!8iW zln*x-WR;V}|D~mAy2+`vFq|IJdd>TT&_3fEe;E*Vr|0v^vkRV6e1caU{6SC!wF1@; zyyf67EpeK3Ythif5s;J%P!^!1*OPwNBW)G#rNj~Qnw3A+30fbU=Y}oyjZQO~lApt> z7z>Sfp}PVnqWmJH$FV5Kq8y3xB=ND%ZZ&%!Ha8DA2|kB!AO8)$2KS@pV*5K?ebH@K ze_?I5vl?(q3!MBpAzN+#ZF-jrQ&ftZ)}CY8Io#J@ahZt8!_c4y>^KH};+qn@Txe08%)yM* z7RH!`=9i&sF4h!YQium%(_m#N;+4Z6e}JjiB`8VQ!E9DMae!NguH~HCKr2k>?|;0m z7W(GKW(j&EJ9K~D>ZUa&bh1NX`3P$Cggw4!CuC63vmwU54;5&!2t(g+LpL3;vO#N7 z*EB>1myRf^yy(H@)u9JQi|P)ZRamJ=uu9i(V;3ege5*T!s}%;pW2z7oA56c4e@DS4 z7 zb)f+)VT}jwTpJ@@=Zo9Y=7aH=-qqp;L?ZDKQng8fEum_T1%D{}dSF=%jtsrvflWLx zjWtzmSG1E13@fbguqG>Hj0wZ0e^{~n1_HDIOz9_{M%STuRYzR0_`xPYf0Ss9kihD; zY!)#81h$!KjE=Oz2mBge!orZaU@j?b(k#M{bVA!+I?_PVgA*S{wkfV2CTm3};9k>9 z%#cXaV9wlU6Cq8K8-UBr?Sf)WB5%_c8fKd$^tgEI<;4%&i`;Hls+Jq)Fqoe)@G!3V zq=He(qfT8?r_dF2NwQntf5*nwF2qMW-iK$pCz=J%<*#I`{q$$^n{)|xr(Iw;WrkH5 zY}n40ja?e}rgQ*@Pe~#Qs!_%XC$l}+IVwkc%=#*}(nX1xH@v-tSK*Y%gV(@Zu7(qJ z9;z5h*+S)@ho<1(#JPc~F$j9GKESVc=)J2JHZi|Mtsr-3{ceiie}d8*-DGvlWyUmM z$BiGxDUaJdZVH{0@*I*h$8MbB0ykb|dX4eO(4KwLhyW#k!>1&k8185T+Nl$<9$bU} zwJ@CmasJ@?lPPU*lsE^Uh=& zO?!LLs((8<0`+fM{RGq>vHFb`b4p$3>w8#ynJ@89?$N$Je;P9v@d<`a{S;-;3ZTrS zqhX^7&AiF$W*@bJ=wJL5eHh^hHW*ATG3Z5Bu%R?EJuZHSV8FC?IM~Dz2R|O|-owKo zRqe(^SGYbr(4R?xJFE)u1(y>fSo@GydW<{Mf>akYqu1gvh|J?36CEY%T(8mvMrX;) zRKtr=5m#u1e_8zE@n;xOu)0HrB+VcHZABRk^8gNLO1Fi2g7)LHeWr@g&;cI~&D~8q z^4a(^`p66Dk}QuDn!3<35ZKat4(ZChBNr^Bnq|4P${}gBhic(1s5HXqf)uE*PM?)1Sz0*ptS)9IZVMn_Nf1?{yOS+UR=Yywnh&-&XK{}qq zb`I3u>1@c_6Hmlzw9y_sFVS}R@U%9Ix~o2lh6enhJ~iPu7~0~FcTz^QVVig2$$E3p zGN5?7aSz3hHwhwtP7LX44|DlkC&bWMDp<-tY(n|S6%@nG7beBpBU_fx5y0?(qhns$ z4<>Itf2LrEBT6w!bx^Q87K7v5BJ`F%HfCPZ12b;X{miEhsc3=+49@*9?WRSOjmY>= z0fq;v9`JZKDJvYCRw5-GVJ^D#4-05g2&Z&+1W_wOW+4=XcOPQ$W>89$Gw{ zBwsxKu|Ty*B1yQ~`^wv!(Pd)@R@QAhXqPhq*7G-5+4zh<-g9+oN0jG&0rMEDt(y}QR zmn}eO@9`n*h#%Nh3s1|4o(60k7C!%if51Bap%w#vYlIz-W`b+@9sJ!HXb%_RVTzli znhMvoFhh!IAHblzB6*w}Nxn~khJ1r{;K|v_O7eY*x9}0L)c0@tZY{E->69F&e>tC7 zmP+OJO=j-{$5*uo1&48fx zDe@8$-x*keQSPo0>8th^?@^+ff9lga*9+f^BeJQlNWqRvQL!&rFgd)kIW7J6Y6q~n zQe$7l&?P(BQ~UPjx_t}(E6sJ=B}O-QK>L&C@CvIbe~0dw&3vo4(H?HR(db_4;@&P=}+S} z<)fgp{xiwQ7o}M?>Ej7ImSZHxMug^I711G47)lTq zS7Ps`@J$oTdIW2DKzlWS{BZ}HA5_#PgmVnJ_6?8n>B$B|CgPr+=5w3VYQm z`i>t;60;p)k5IjX*KDVAEhoVFp2j&vfceb;bD@ z=_(2$tkOjZwh<=}T<^m&Fj&w>NacYT08k8!&!!YiIP;|VcFLsDs>xuXn3<8qC{DaB zM>*RhXent!m7V{zdpC=-@SYYS%0WE!tV0y7*1;eM49+!%e?4+qdt>d#Mpf(cHqfuL zK+obqPeig&;i|eEt}2y9QmkdT1IM|l)68yYi{w10&wknz9xaSx6MF%xNvPgFA>P11 zMI;VX)SAfgK^}>R5zDBhi^R$m!^CXrBa2o2uQ>mbq!n!q8od1s;FOC4oKISkL;kEs zj5{Ca)_xezf9w%m>SOt^$L)e`W0^(1%ge#H$Wlyy%Lp7kiB>mbO}Su_Fu0MNwH1;_F<4w;oq&V9Xrqmzf84DdCyo8T9~<@*HtsswlhDAA z5@;6`k9U7j9RvYzjs)IgnXp=)*C|+Sn)1qH6$88wtTC&QHW62t<_b-KRZ2c1R zb)?TX;8DMV1}q@Es4itQ=-zaSX_UjZsi62`kQy|vLhGT6$yvllyY1Y2+OAM9L{OIz zEWAqdf3Zocv^If2GT_R`|5Q#KoRf}2w7;i>1AvP$BFX2_bc7|$sT~fNN&=pLGKl4s zBjE$+hEIiKI7>R_I(+#B7J%^qcz5hx1~o*Za$_zbb}3mf+0`q@rUY{_f3kD8BQ7r`6T{z|i1Q`sor&91*#0rD zg5(VHJDxA)6HRN`sy&FUy{kiWtqXCq_fw?LD|al$=8c5)pDFz=HI4xKD%nu;1xvfu zB;43yFZt_FejghJ2mJS-npZC-=|n673LT;iQap)Ch!Cd5Q4y>NCgb+%FzgMwgq_68srYjZ(LUt-LT5 z&aDpP@=RP_v-_t5Tmv1bQ?i4g>2@+ulHIhE7mwU54I7d^jvoiXO>q0RRUI3Ne+xnW zGUDI^Z~6Vp#IF7_bVjEaS0F9%35Fk@pY`b64q{jOIUKU+GP|wG9yuML-KsOq0|#9V zsl^lP9e6rSzDxPatoZoiU!vTDr^DpCl$Rz+t6!vgssQkk-ngp6g{$Te^;#E34j*vRQWa>vSh&gug6jlHtPxoO8~y{@8$N z4;od40i%ff!rG*J==L*2^&!)3M4p}!LSvT`P61_vI-u!xvIrIgX&nsEf5379q$0nX z9kt)jFO8k_bOVlj_4q1rmflt*j!YeTCXaYIFP z)&)j*3h|&v^Q=9j*!{2*uYiL}dDEE_J_CQQt)6h_Tu}q$hMRJg4%vPeH=^VU-QN!4 zs7^mNrsjLgpHoWDA3=nrKSPGg9r7#ks+FHPievYYXAQ1g&L}^Je}D)29RPd+$C^0A z$Wz<3aI>vc(Y{AHJUNeH_T-?2ntoma9}+{qDaxsZJUsd5kjp9f1wCL=X_00`#jMe#R&ZhgzjNxOd>A6?i?YO@eyK4Fx|-9vUj(` zpojr4X52Yt)Do9`<3#Xa_=WVcyh|LDo*o6U-oV0lkI_fsTka@*&V*Q38=N*?b{b0C z9=Zr@>hT5*aZ75Bk~HBCkm`AsK98}C+`3dAv0<(5(9`^~e=|bptV|Kc_PuSvM3(0C z)##37`QGDp(xV{Om4+3SbC|-z7{$HE1S|SN;uGH^1McET3!M@1$Kea_H1uQls(;(P zWEUeF42ZEMWWnw^dR+qeU%;I?{GL0;3N8eYs zOzz&;X`h6Ne_`3Y(4910_&E_s=S-*BHX^2%AT91BPV3ud9)4WhmI&M|%#caNb(M6O z!`rle*UX8$9zA&K?%IRwo3vlRW)yT?DmM^SxmvHSyjc;leyVfXjm zDu$^I*bE4dnXrFGC91k+%r&ifN|TIM;sL5lQ<;1`1qt`y_3k^g1<%qdYB0S-%WZcu z*wE?ge{Ol$Lvh(9qpo()MRG=O_laUFwmVewviHju-RFvJBAvqS_d~#fQ_q&Vq*6v^g*Jcji%6)Y%p z)ejKS91u@D@%i)#F=+-fKVBEk7EV$joT37h!^S|tXd(&?P)eNQ4xI)c?;=EPxL6;p zqxUNq)L6`HS=@J;jb|Z@B22fL@3vB*5=^3&XvFylGk3zuXoU_h2bnp1SNUa71viAs zj2E(HPeS5*w1eu71@7YO{bmFdO0=yY52al0tDQU)fIZc^g|M&fmvp>SxuesEs8P9` u0v9($todXFQ;yayVAT{#D*<=aPlw4-KORFcS|18``M>LfqyGU&6vaYMGRwCB delta 9158 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 - Pesquisar — Documentação py4web 1.20240420.2 + Pesquisar — Documentação py4web 1.20240530.2 @@ -18,7 +18,7 @@ - + @@ -44,7 +44,7 @@
          - 1.20240420.2 + 1.20240530.2
          @@ -142,7 +142,7 @@ - v: 1.20240420.2 + v: 1.20240530.2
          diff --git a/apps/_documentation/static/pt/searchindex.js b/apps/_documentation/static/pt/searchindex.js index ceb0f59d0..95adcaec4 100644 --- a/apps/_documentation/static/pt/searchindex.js +++ b/apps/_documentation/static/pt/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A auto-refer\u00eancia e aliases": [[6, "self-reference-and-aliases"]], "A minimal form example without a database": [[11, "a-minimal-form-example-without-a-database"]], "A obten\u00e7\u00e3o de um `` row``": [[6, "fetching-a-row"]], "A p\u00e1gina Web principal": [[3, "the-main-web-page"]], "ANY_OF": [[11, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adicionando atributos para campos e tabelas": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced form design": [[11, "advanced-form-design"]], "Advanced topics and examples": [[15, "advanced-topics-and-examples"]], "Agrupamento e contando": [[6, "grouping-and-counting"]], "Ajuda, recursos e dicas": [[1, "help-resources-and-hints"]], "Aplicativos de modelo-less": [[6, "model-less-applications"]], "As fontes no GitHub": [[1, "the-sources-on-github"]], "Assinatura da DAL": [[6, "dal-signature"]], "Atalhos": [[6, "shortcuts"]], "Atualizar os arquivos de tradu\u00e7\u00e3o": [[10, "update-the-translation-files"]], "Authentication and authorization": [[12, "authentication-and-authorization"]], "Authentication using Auth": [[12, "authentication-using-auth"]], "Authorization using Tags": [[12, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[15, "autocomplete-widget-using-htmx"]], "A\u00e7\u00e3o personalizada Bot\u00f5es": [[13, "custom-action-buttons"]], "Bancos de dados legados e tabelas com chave": [[6, "legacy-databases-and-keyed-tables"]], "Bancos de dados replicados": [[6, "replicated-databases"]], "Basic form example": [[11, "basic-form-example"]], "Basic grid example": [[13, "basic-grid-example"]], "Bot\u00e3o Classe A\u00e7\u00e3o Amostra": [[13, "sample-action-button-class"]], "Built-in helpers": [[9, "built-in-helpers"]], "CLEANUP": [[11, "cleanup"]], "CRUD settings": [[13, "crud-settings"]], "CRYPT": [[11, "crypt"]], "CSV (todas as tabelas ao mesmo tempo)": [[6, "csv-all-tables-at-once"]], "CSV (uma tabela de cada vez)": [[6, "csv-one-table-at-a-time"]], "CSV e sincroniza\u00e7\u00e3o de banco de dados remoto": [[6, "csv-and-remote-database-synchronization"]], "Caching e Memoize": [[5, "caching-and-memoize"]], "Campos computados": [[6, "computed-fields"]], "Campos virtuais": [[6, "virtual-fields"]], "Campos virtuais novo estilo (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Campos virtuais velho antigo": [[6, "old-style-virtual-fields"]], "Caracter\u00edsticas avan\u00e7adas": [[6, "advanced-features"]], "Cascades no banco de dados": [[6, "database-cascades"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Checkbox validation": [[11, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combinando Rows": [[6, "combining-rows"]], "Como contribuir": [[1, "how-to-contribute"]], "Complexity and security validators": [[11, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Configura\u00e7\u00f5es de quoting e case e do banco de dados": [[6, "database-quoting-and-case-settings"]], "Configura\u00e7\u00f5es padr\u00e3o de migra\u00e7\u00e3o": [[6, "default-migration-settings"]], "Construtor DAL": [[6, "dal-constructor"]], "Construtor Field": [[6, "field-constructor"]], "Construtor Table": [[6, "table-constructor"]], "Conte\u00fado:": [[16, null]], "Copiar dados de um para outro db": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom columns": [[13, "custom-columns"]], "Custom forms": [[11, "custom-forms"]], "Custom widgets": [[11, "custom-widgets"]], "Customizing style": [[13, "customizing-style"]], "DAL introduction": [[6, "dal-introduction"]], "Database validators": [[11, "database-validators"]], "Date and time validators": [[11, "date-and-time-validators"]], "De web2py para py4web": [[14, "from-web2py-to-py4web"]], "Decoradores de conveni\u00eancia": [[5, "convenience-decorators"]], "Default page layout": [[8, "default-page-layout"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Depura\u00e7\u00e3o py4web com PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Depura\u00e7\u00e3o py4web com VScode": [[1, "debugging-py4web-with-vscode"]], "Dicas e sugest\u00f5es": [[1, "hints-and-tips"]], "Dictionaries and tuples with IS_IN_SET": [[11, "dictionaries-and-tuples-with-is-in-set"]], "Do princ\u00edpio": [[4, "from-scratch"]], "Em valores de retorno": [[4, "on-return-values"]], "Este manual": [[1, "this-manual"]], "Etiquetas e permiss\u00f5es": [[12, "tags-and-permissions"]], "Experimentar com o shell py4web": [[6, "experiment-with-the-py4web-shell"]], "Exportar e importar dados": [[6, "exporting-and-importing-data"]], "Express\u00f5es": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "Falhas de conex\u00e3o (par\u00e2metro tentativas)": [[6, "connection-failures-attempts-parameter"]], "Fazendo uma conex\u00e3o segura": [[6, "making-a-secure-connection"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[11, "file-upload-field"]], "Fixa\u00e7\u00e3o migra\u00e7\u00f5es quebrados": [[6, "fixing-broken-migrations"]], "Fixtures personalizados": [[5, "custom-fixtures"]], "Fixures": [[5, "fixtures"]], "Form structure manipulation": [[11, "form-structure-manipulation"]], "Foruml\u00e1rios": [[11, "forms"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "HTML e XML (uma tabela de cada vez)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Helpers YATL": [[9, "yatl-helpers"]], "Helpers overview": [[9, "helpers-overview"]], "Helpers personalizados": [[9, "custom-helpers"]], "Heran\u00e7a de tabela": [[6, "table-inheritance"]], "IS_ALPHANUMERIC": [[11, "is-alphanumeric"]], "IS_DATE": [[11, "is-date"]], "IS_DATETIME": [[11, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[11, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[11, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[11, "is-decimal-in-range"]], "IS_EMAIL": [[11, "is-email"]], "IS_EMPTY_OR": [[11, "is-empty-or"]], "IS_EQUAL_TO": [[11, "is-equal-to"]], "IS_EXPR": [[11, "is-expr"]], "IS_FILE": [[11, "is-file"]], "IS_FLOAT_IN_RANGE": [[11, "is-float-in-range"]], "IS_IMAGE": [[11, "is-image"]], "IS_INT_IN_RANGE": [[11, "is-int-in-range"]], "IS_IN_DB": [[11, "is-in-db"]], "IS_IN_DB and Tagging": [[11, "is-in-db-and-tagging"]], "IS_IN_SET": [[11, "is-in-set"]], "IS_IN_SET and Tagging": [[11, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[11, "is-ipaddress"]], "IS_IPV4": [[11, "is-ipv4"]], "IS_IPV6": [[11, "is-ipv6"]], "IS_JSON": [[11, "is-json"]], "IS_LENGTH": [[11, "is-length"]], "IS_LIST_OF": [[11, "is-list-of"]], "IS_LIST_OF_EMAILS": [[11, "is-list-of-emails"]], "IS_LOWER": [[11, "is-lower"]], "IS_MATCH": [[11, "is-match"]], "IS_NOT_EMPTY": [[11, "is-not-empty"]], "IS_NOT_IN_DB": [[11, "is-not-in-db"]], "IS_NULL_OR": [[11, "is-null-or"]], "IS_SLUG": [[11, "is-slug"]], "IS_STRONG": [[11, "is-strong"]], "IS_TIME": [[11, "is-time"]], "IS_UPLOAD_FILENAME": [[11, "is-upload-filename"]], "IS_UPPER": [[11, "is-upper"]], "IS_URL": [[11, "is-url"]], "Implanta\u00e7\u00e3o em PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserir e atualizar a partir de um dicion\u00e1rio": [[6, "inserting-and-updating-from-a-dictionary"]], "Instalando a partir de bin\u00e1rios": [[2, "installing-from-binaries"]], "Instalando a partir de fonte (localmente)": [[2, "installing-from-source-locally"]], "Instala\u00e7\u00e3o de fonte (globalmente)": [[2, "installing-from-source-globally"]], "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento": [[2, "installation-and-startup"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Interface de autentica\u00e7\u00e3o": [[12, "auth-ui"]], "Internacionaliza\u00e7\u00e3o": [[10, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[13, "key-features"]], "LDAP": [[12, "ldap"]], "Left outer join": [[6, "left-outer-join"]], "Linguagem de template YATL": [[8, "yatl-template-language"]], "Local de pasta do banco de dados": [[6, "database-folder-location"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Mais sobre envios": [[6, "more-on-uploads"]], "Many to many relation": [[6, "many-to-many-relation"]], "Marca\u00e7\u00e3o de registros": [[6, "tagging-records"]], "Melhoramento": [[2, "upgrading"]], "Migra\u00e7\u00e3o resumo controle": [[6, "migration-control-summary"]], "Migra\u00e7\u00f5es": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Modelos": [[4, "templates"]], "Multiple Tags objects": [[12, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "Nota sobre novo DAL e adaptadores": [[6, "note-on-new-dal-and-adapters"]], "O Dashboard": [[3, "the-dashboard"]], "O fixture DAL": [[5, "the-dal-fixture"]], "O fixture flash": [[5, "the-flash-fixture"]], "O grupo Google": [[1, "the-google-group"]], "O objeto `` request``": [[4, "the-request-object"]], "O pool de conex\u00f5es": [[6, "connection-pooling"]], "O que \u00e9 py4web?": [[0, "what-is-py4web"]], "OAuth2 with Discord": [[12, "oauth2-with-discord"]], "OAuth2 with Facebook": [[12, "oauth2-with-facebook"]], "OAuth2 with Google": [[12, "oauth2-with-google"]], "Operadores l\u00f3gicos": [[6, "logical-operators"]], "Op\u00e7\u00e3o `` comando call``": [[2, "call-command-option"]], "Op\u00e7\u00e3o `` comando new_app``": [[2, "new-app-command-option"]], "Op\u00e7\u00e3o `` comando run``": [[2, "run-command-option"]], "Op\u00e7\u00e3o `` comando set_password``": [[2, "set-password-command-option"]], "Op\u00e7\u00e3o `` comando setup``": [[2, "setup-command-option"]], "Op\u00e7\u00e3o `` comando shell``": [[2, "shell-command-option"]], "Op\u00e7\u00e3o `` comando version``": [[2, "version-command-option"]], "Op\u00e7\u00f5es de linha de comando": [[2, "command-line-options"]], "Or\u00e1culo": [[6, "oracle"]], "Os campos de refer\u00eancia": [[13, "reference-fields"]], "Os valores por defeito com `` `` coalesce`` e coalesce_zero``": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Other validators": [[11, "other-validators"]], "Outros operadores": [[6, "other-operators"]], "Outros par\u00e2metros do construtor DAL": [[6, "other-dal-constructor-parameters"]], "PAM": [[12, "pam"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Palavras-chave reservadas": [[6, "reserved-keywords"]], "Pegadinhas": [[6, "gotchas"]], "Personalizados `` tipos Field``": [[6, "custom-field-types"]], "Plataformas e pr\u00e9-requisitos suportados": [[2, "supported-platforms-and-prerequisites"]], "Plugins de Autentica\u00e7\u00e3o": [[12, "auth-plugins"]], "Pluralizar": [[10, "pluralize"]], "Primeira corrida": [[2, "first-run"]], "Procedimentos de configura\u00e7\u00e3o": [[2, "setup-procedures"]], "Pr\u00e9-requisitos": [[1, "prerequisites"]], "P\u00e1ginas est\u00e1ticas": [[4, "static-web-pages"]], "P\u00e1ginas web din\u00e2micas": [[4, "dynamic-web-pages"]], "Range, set and equality validators": [[11, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Recursivas `` s SELECT``": [[6, "recursive-selects"]], "Recursos": [[1, "resources"]], "Rede": [[13, "grid"]], "Renderizando Rows com represent": [[6, "rendering-rows-using-represent"]], "Representa\u00e7\u00e3o de dados": [[6, "data-representation"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Rotas": [[4, "routes"]], "SQLite": [[6, "sqlite"]], "Searching and filtering": [[13, "searching-and-filtering"]], "Selects com cache": [[6, "caching-selects"]], "Server-side DOM": [[9, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Sess\u00e3o no Dashboard": [[3, "login-into-the-dashboard"]], "Sharing sessions": [[5, "sharing-sessions"]], "Simple conversion examples": [[14, "simple-conversion-examples"]], "Sintaxe b\u00e1sica": [[8, "basic-syntax"]], "Sorted options": [[11, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[11, "special-type-validators"]], "Standard widgets": [[11, "standard-widgets"]], "Strings de conex\u00e3o (o par\u00e2metro uri)": [[6, "connection-strings-the-uri-parameter"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Tabelas pregui\u00e7osos": [[6, "lazy-tables"]], "Table methods": [[6, "table-methods"]], "Template Functions": [[8, "template-functions"]], "Temporiza\u00e7\u00e3o de consultas": [[6, "timing-queries"]], "Text format validators": [[11, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Form constructor": [[11, "the-form-constructor"]], "The Grid object": [[13, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[15, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[15, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The sidecar parameter": [[11, "the-sidecar-parameter"]], "Transa\u00e7\u00e3o distribu\u00edda": [[6, "distributed-transaction"]], "Tutoriais e v\u00eddeo": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[12, "two-factor-authentication"]], "Um local de trabalho python moderna": [[1, "a-modern-python-workplace"]], "Um para muitos rela\u00e7\u00e3o": [[6, "one-to-many-relation"]], "Understanding the design": [[2, "understanding-the-design"]], "Usando DAL sem definir tabelas": [[6, "using-dal-without-define-tables"]], "Usando o DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Usando templates": [[13, "using-templates"]], "Usando um seleto para uso de mem\u00f3ria inferior \u00e0 base de iterador": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "User Impersonation": [[12, "user-impersonation"]], "Using Auth inside actions": [[12, "using-auth-inside-actions"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[9, "using-inject"]], "Using callable parameters": [[13, "using-callable-parameters"]], "Validation functions": [[11, "validation-functions"]], "Valida\u00e7\u00e3o de formul\u00e1rio": [[11, "form-validation"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "Widgets": [[11, "widgets"]], "`` A``": [[9, "a"]], "`` BEAUTIFY``": [[9, "beautify"]], "`` BODY``": [[9, "body"]], "`` Belongs``": [[6, "belongs"]], "`` CAT``": [[9, "cat"]], "`` Comando SELECT``": [[6, "select-command"]], "`` Count``, `` isempty``, `` DELETE``, `` update``": [[6, "count-isempty-delete-update"]], "`` Def \u2026 return``": [[8, "def-return"]], "`` Div``": [[9, "div"]], "`` Drop``": [[6, "drop"]], "`` EM``": [[9, "em"]], "`` Find``, `` exclude``, `` sort``": [[6, "find-exclude-sort"]], "`` Form``": [[9, "form"]], "`` Format``: representa\u00e7\u00e3o da ficha": [[6, "format-record-representation"]], "`` H1``, `` h2``, `` H3``, `` H4``, `` H5``, `` H6``": [[9, "h1-h2-h3-h4-h5-h6"]], "`` HEAD``": [[9, "head"]], "`` HTML``": [[9, "html"]], "`` IMG``": [[9, "img"]], "`` INPUT``": [[9, "input"]], "`` I``": [[9, "i"]], "`` Id``: Notas sobre a chave prim\u00e1ria": [[6, "id-notes-about-the-primary-key"]], "`` If \u2026 elif \u2026 else``": [[8, "if-elif-else"]], "`` Insert``": [[6, "insert"]], "`` LI``": [[9, "li"]], "`` Label``": [[9, "label"]], "`` Like``, `` ilike``, `` regexp``, `` startswith``, `` endswith``, `` contains``, `` upper``, `` lower``": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "`` Lista: `` e `` contains``": [[6, "list-type-and-contains"]], "`` Migrate``, `` fake_migrate``": [[6, "migrate-fake-migrate"]], "`` OL``": [[9, "ol"]], "`` OPTION``": [[9, "option"]], "`` On_define``": [[6, "on-define"]], "`` Orderby``, `` groupby``, `` limitby``, `` distinct``, `` having``, `` orderby_on_limitby``, `` join``, `` left``, `` cache``": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "`` PRE``": [[9, "pre"]], "`` P``": [[9, "p"]], "`` Para \u2026 in``": [[8, "for-in"]], "`` Primarykey``: Suporte para tabelas legadas": [[6, "primarykey-support-for-legacy-tables"]], "`` Query``, `` Set``, `` Rows``": [[6, "query-set-rows"]], "`` Redefine``": [[6, "redefine"]], "`` Rname``: nome real": [[6, "rname-real-name"]], "`` SCRIPT``": [[9, "script"]], "`` SELECT``": [[9, "select"]], "`` SPAN``": [[9, "span"]], "`` STYLE``": [[9, "style"]], "`` Sequence_name``": [[6, "sequence-name"]], "`` Sum``, `` avg``, `` min``, `` `` max`` e len``": [[6, "sum-avg-min-max-and-len"]], "`` TABLE``, `` TR``, `` TD``": [[9, "table-tr-td"]], "`` TAG``": [[9, "tag"]], "`` TBODY``": [[9, "tbody"]], "`` TEXTAREA``": [[9, "textarea"]], "`` THEAD``": [[9, "thead"]], "`` TH``": [[9, "th"]], "`` TITLE``": [[9, "title"]], "`` TT``": [[9, "tt"]], "`` Table_class``": [[6, "table-class"]], "`` Tentar \u2026 exceto \u2026 else \u2026 finally``": [[8, "try-except-else-finally"]], "`` Trigger_name``": [[6, "trigger-name"]], "`` UL``": [[9, "ul"]], "`` URL``": [[9, "url"]], "`` Update_or_insert``": [[6, "update-or-insert"]], "`` Update_record``": [[6, "update-record"]], "`` Validate_and_insert``, `` validate_and_update``": [[6, "validate-and-insert-validate-and-update"]], "`` While``": [[8, "while"]], "`` XML``": [[9, "xml"]], "`` Year``, `` month``, `` day``, `` hour``, `` minutes``, `` seconds``": [[6, "year-month-day-hour-minutes-seconds"]], "`` _Lastsql``": [[6, "lastsql"]], "`` `` As_dict`` e as_list``": [[6, "as-dict-and-as-list"]], "`` `` Filter_in`` e filter_out``": [[6, "filter-in-and-filter-out"]], "`` `` First`` e last``": [[6, "first-and-last"]], "`` `` Plural`` e singular``": [[6, "plural-and-singular"]], "`` `` commit`` e rollback``": [[6, "commit-and-rollback"]], "`` case``": [[6, "case"]], "`` executesql``": [[6, "executesql"]], "`` polymodel``": [[6, "polymodel"]], "assinatura define_table": [[6, "define-table-signature"]], "block and super": [[8, "block-and-super"]], "cache, em cache": [[6, "cache-cacheable"]], "children": [[9, "children"]], "distinto": [[6, "distinct"]], "extend and include": [[8, "extend-and-include"]], "filtros comuns": [[6, "common-filters"]], "find": [[9, "find"]], "groupby, tendo": [[6, "groupby-having"]], "htmx": [[15, "htmx"]], "htmx usage in Form": [[15, "htmx-usage-in-form"]], "htmx usage in Grid": [[15, "htmx-usage-in-grid"]], "juntar-se, deixou": [[6, "join-left"]], "limitby": [[6, "limitby"]], "modifica\u00e7\u00e3o da tabela e campo em tempo de execu\u00e7\u00e3o": [[6, "run-time-field-and-table-modification"]], "ordenar por": [[6, "orderby"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "py4web and asyncio": [[15, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: o manual de refer\u00eancia": [[16, "py4web-the-reference-manual"]], "retornos de chamada no registro de inser\u00e7\u00e3o, exclus\u00e3o e atualiza\u00e7\u00e3o": [[6, "callbacks-on-record-insert-delete-and-update"]], "string.format": [[15, "string-format"]], "two_factor_required": [[12, "two-factor-required"]], "two_factor_send": [[12, "two-factor-send"]], "two_factor_tries": [[12, "two-factor-tries"]], "utils.js": [[15, "utils-js"]], "versionamento recorde": [[6, "record-versioning"]], "\u00cdndices": [[6, "indexes"]], "\u00cdndices e tabelas": [[16, "indices-and-tables"]], "\u201cAccessing OS files\u201d example": [[14, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[14, "form-and-flash-example"]], "\u201cHello world\u201d example": [[14, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[14, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[14, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[14, "returning-args-example"]], "\u201cReturning variables\u201d example": [[14, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[14, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[14, "view-example"]], "\u201cauth\u201d example": [[14, "auth-example"]], "\u201cgrid\u201d example": [[14, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "00": 7, "01": 7, "02": [6, 11], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "06": 11, "08": 11, "0x4e86": 11, "0x7fa533ff7640": 9, "1": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15], "10": [2, 6, 7, 8, 9, 10, 11, 12, 15], "100": [2, 6, 7, 8, 11], "1000": [5, 6, 11, 15], "1000ms": 15, "100px": 15, "1024": 11, "1048576": 11, "10px": 13, "11": [6, 11], "111111": 15, "11211": 5, "12": 11, "120": 6, "123": [9, 11], "123218": 7, "123456": 11, "125": 6, "127": [2, 3, 5, 11, 13], "13": [5, 6, 11], "132635": 7, "14": [8, 11, 13], "15": [6, 11, 12, 13], "16": 11, "168": 11, "169": 11, "16px": 8, "172": [6, 11], "174": 6, "178974": 7, "19": [6, 7, 11], "192": [6, 11], "1963": 11, "198": 6, "199": 11, "19t05": 7, "1e100": 6, "1kb": 11, "1l": 6, "1mb": 11, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "20": [2, 7, 10, 11], "200": [7, 11, 14, 15], "2001": 11, "2002": 11, "2005": 6, "2007": 0, "2008": 11, "2009": 11, "200ms": 15, "200x200": 11, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 12, "227": 6, "239": 6, "2396": 11, "24": 11, "254": 11, "255": 11, "256": 6, "2616": 11, "28": 11, "2em": 15, "2px": 15, "3": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "30": [2, 6, 8, 11], "301": 14, "309903": 7, "31": [6, 7, 11], "32": [6, 11], "322494": 7, "33": [6, 11], "34": 7, "3490": 11, "3492": 11, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 15, "4": [2, 5, 6, 7, 8, 11, 13], "40": [2, 9, 15], "400": [5, 14], "404": [5, 11, 12], "405515": 7, "43": 6, "45": [8, 11], "451907": 7, "453020": 7, "456": 11, "466030": 7, "4e": 11, "5": [5, 6, 7, 8, 10, 11, 12, 13, 15], "50": [2, 7], "500": 15, "500ms": 15, "512": 6, "53": 11, "54": 8, "559918": 7, "58": 8, "59": 11, "6": [5, 6, 7, 11, 12, 14], "60": [5, 6], "63": [6, 11], "6379": 5, "64": [6, 8, 15], "65": 6, "6to4": 11, "7": [2, 7, 8, 11, 14], "70": 7, "74": 6, "75": 7, "768": 6, "8": [2, 6, 7, 11], "80": [7, 11], "8000": [2, 3, 4, 11, 13], "86": 11, "8601": 7, "8em": [8, 15], "9": [6, 7, 11, 13, 14], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "AS": 6, "Ao": [4, 6, 8, 13], "As": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "COMO": 6, "Com": 6, "Comando": 16, "Como": [6, 16], "Da": 6, "De": [0, 1, 4, 6, 16], "Do": [8, 11, 13, 16], "E": [1, 6, 12], "Ela": [1, 6, 8], "Ele": [2, 3, 5, 6, 9], "Eles": [0, 4, 6], "Em": [2, 5, 6, 8, 9], "Essas": 0, "Esse": 4, "Esses": [5, 6], "Esta": [0, 1, 2, 4, 6], "Estas": 9, "Este": [2, 6, 8, 9, 13, 14], "Estes": 6, "For": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15], "Fora": 0, "H\u00e1": [1, 5, 6, 13], "Isso": [2, 4, 6], "Isto": [0, 2, 3, 4, 5, 6, 9, 13], "Mas": [1, 4, 6], "NO": 6, "Na": 0, "Nem": 6, "No": [2, 5, 6, 8, 13], "Nos": 6, "N\u00f3s": [0, 1, 5], "O": [2, 8, 9, 11, 12, 16], "OU": 13, "Os": [0, 3, 4, 8, 9, 12, 16], "Por": [2, 3, 4, 5, 6, 9], "SE": 6, "Se": [1, 2, 3, 4, 6, 8, 9, 13], "Seu": 6, "Tamb\u00e9m": 6, "Um": 5, "Uma": [2, 4, 6, 8, 9], "_": [2, 11, 15], "__": [1, 2, 4], "__file__": [5, 7, 11, 13], "__init": 2, "__init__": [2, 4, 5, 6, 7, 11, 13, 14, 15], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 9], "_action": 9, "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_updat": 6, "_alt": 9, "_and": 11, "_antes_": 6, "_autocomplet": 15, "_autocomplete_search_fields": 15, "_before_delet": 6, "_before_insert": 6, "_before_updat": 6, "_bgcolor": 9, "_c": 9, "_checked": 9, "_class": [5, 9, 11, 15], "_cols": 9, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_dat": 9, "_db": 6, "_dbnam": 6, "_default": [2, 4], "_delet": 6, "_disabled": 9, "_documentation": [1, 3], "_enable_record_versioning": 6, "_extr": 6, "_format": 6, "_href": [5, 8, 9, 11, 13], "_hx": 15, "_id": [6, 9, 11, 15], "_insert": 6, "_listify": 6, "_method": 9, "_nam": [6, 9, 11, 15], "_next_url": 12, "_nonreserved": 6, "_onclick": 11, "_placehold": [11, 15], "_rows": 9, "_scaffold": [5, 8, 9, 11, 12, 13, 14, 16], "_search": 15, "_select": 6, "_selected": 9, "_sesson": 5, "_src": 9, "_style": [11, 15], "_tabl": [6, 11, 15], "_tablenam": 6, "_tag": 12, "_timings": 6, "_titl": [11, 15], "_type": [6, 9, 11, 15], "_u": 9, "_updat": 6, "_ur": 6, "_valu": [9, 11, 15], "_xmlns": 9, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaa": 8, "ab": [9, 11], "aba": 3, "abaix": 6, "abas": 3, "abbreviated": 11, "abc": [9, 11], "abert": [1, 3, 6], "ability": 14, "able": [5, 6, 11], "abort": [4, 6], "about": [6, 7, 12, 13, 14, 15, 16], "abov": [4, 5, 6, 7, 8, 11, 13], "abracadabr": 2, "abrir": 2, "absent": 2, "absolut": [2, 6, 14], "abspath": 4, "abstraction": [5, 14, 16], "abstra\u00e7\u00e3": 6, "acab": 6, "accdesc": 6, "accept": [4, 5, 11, 15], "acceptanc": 11, "accepted": [1, 2, 6, 11, 14, 15], "accepting": 9, "accepts": 11, "access": [4, 5, 6, 9, 12, 14, 15], "accessed": [6, 9, 11], "accessibl": 4, "accessing": [5, 6], "accnum": 6, "accomplish": 6, "accomplished": [6, 12, 14], "according": 8, "accordingly": 8, "account": 6, "acctype": 6, "aceit": [6, 10, 11], "aceler": 6, "acert": 2, "acess": [0, 2, 4, 5, 6], "acess\u00f3ri": 4, "achieved": [5, 14], "acim": [6, 7, 8, 12], "acion": 6, "acknowledgments": 16, "acompanh": 6, "acontec": 6, "acord": 6, "acrescent": 6, "across": [6, 8], "act": 6, "action": [4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "action_button": 13, "action_token": [5, 12], "actions": [4, 5, 6, 13, 14, 16], "activ": [6, 12], "activat": [2, 12], "activated": 12, "activating": 2, "activiti": 6, "acts": 11, "actu": 6, "actual": [5, 6, 8, 12, 13], "actualiz": 6, "actually": [6, 8], "ac\u00e7\u00e3": [4, 5, 6, 7], "ad": 12, "adapt": 12, "adapter_args": 6, "adapters": [6, 15], "add": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "added": [0, 2, 5, 11, 12, 15], "adding": [6, 11, 13], "addition": [6, 8], "additional": [4, 5, 7, 8, 11, 13], "additional_cl": 13, "additional_styl": 13, "address": [2, 11, 12], "adi": 6, "adiant": 12, "adicion": [2, 5, 10, 11, 12, 13], "adicional": [2, 5, 6], "adi\u00e7\u00e3": 6, "admin": 14, "administr": [0, 6], "administrativ": 2, "administrator": 2, "adquir": 6, "advanc": [2, 12, 13], "advanced": [13, 16], "advantag": [2, 6, 8, 15], "advisabl": 6, "advised": 13, "afet": 6, "after": [5, 6, 8, 11, 12, 13], "after_connection": 6, "after_delet": 6, "after_insert": 6, "after_updat": 6, "aftermath": 6, "again": [2, 4, 5, 6, 11, 15], "against": [6, 7, 9, 11, 13], "age": 6, "aggregat": 6, "agir": [6, 9], "agn\u00f3st": 4, "agor": [2, 4, 5, 6, 8], "agrad": 9, "agreg": 6, "aid": 6, "aims": 0, "aind": [2, 6, 12], "ajax": [8, 13, 15], "ajud": [0, 2, 4, 6, 14, 16], "ajust": 6, "aka": 1, "alcanc": 6, "aleat\u00f3r": 6, "alert": [5, 8, 9, 11, 14], "alerts": [5, 8, 14], "alex": 6, "alfar": [0, 1], "alg": 11, "algo": [5, 6, 7, 8], "algorithm": [5, 11], "algum": [4, 6, 9], "alguns": [0, 2, 4, 5, 6, 7, 8, 9], "ali": [6, 11], "aliment": 6, "all": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "allocated": 11, "allow": [7, 8, 9, 11, 12, 13, 15], "allowed": [6, 7, 11, 12], "allowed_actions": 12, "allowed_attribut": 9, "allowed_overrid": 11, "allowed_patterns": 7, "allowed_schem": 11, "allowing": [1, 11], "allows": [2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 15], "almost": 5, "along": [2, 4, 9, 11, 15], "alphabetically": 11, "alphanumeric": 11, "already": [2, 4, 5, 9, 11, 12, 13], "also": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "alt": 9, "alter": [0, 2, 4, 5, 6, 10], "altering": 6, "altern": 6, "alternat": [5, 15], "alternativ": [2, 8, 11], "although": [2, 8, 11], "alvo": 6, "always": [0, 2, 4, 5, 6, 11, 15], "al\u00e9m": [4, 6, 13], "am": 11, "amazon": 6, "ambas": 6, "ambient": 2, "ambigu": [4, 6], "ambos": [4, 5, 6], "among": [6, 11], "amount": 6, "ampli": 1, "an": [0, 1, 2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16], "analis": [4, 6, 10], "analogy": 14, "ancestor": 9, "anchor": 15, "and": [0, 1, 2, 3, 4, 5, 9, 16], "andaim": 4, "andrew": 1, "anex": 6, "angle": 8, "angul": 15, "angularjs": 0, "aninh": [6, 9], "anonymous": [6, 8, 11], "anoth": [4, 5, 6, 8, 11, 12], "anotherpath": 5, "ansi": 6, "answer": 1, "anteced": 4, "anterior": [2, 6], "antes": [1, 6, 8, 9, 12, 13], "antig": 14, "any": [2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "anyhow": 2, "anyobj": 6, "anything": 4, "anyway": 6, "anywher": [8, 14], "an\u00e1lis": 6, "apag": 11, "aparec": 6, "aparent": 6, "apen": [2, 5, 6, 7], "api": [0, 6, 7, 9, 11, 12, 15], "api_version": 7, "apis": [0, 6, 12, 14], "aplic": [0, 2, 3, 4, 5, 13, 14], "apoi": 6, "apont": 6, "app": [0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "app1": 5, "app1_session": 5, "app2": 5, "app_fold": 14, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appe": [6, 11], "append": [6, 9, 11, 13, 15], "append_id": 13, "appended": [5, 6], "apple": 11, "appli": [6, 11, 15], "application": [2, 5, 6, 8, 12, 14, 15], "applications": [0, 2, 3, 4, 6, 11, 12, 13], "applied": [5, 11, 13, 15], "apply": [0, 5, 11, 12, 13], "applying": [6, 13], "appnam": [2, 5, 12, 14], "appname_session": 5, "approach": [6, 14], "appropriat": [6, 11], "appropriately": 6, "approv": 12, "apps": [0, 1, 2, 3, 4, 5, 6, 8, 12, 14], "apps_fold": 2, "aprend": 1, "apresent": 8, "apropri": 6, "aproxim": 6, "apt": 12, "ap\u00f3s": [2, 6, 13], "aqu": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "aquel": [6, 12], "arbitrary": [4, 12], "arbitr\u00e1ri": 6, "archive_db": 6, "archive_nam": 6, "are": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "aren": 6, "args": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 9, 11, 12], "arguments": [2, 5, 6, 8, 9, 11, 12, 14], "arithmetic": 11, "armazen": [0, 2, 5, 6, 9], "around": [1, 14], "arquiv": [0, 2, 3, 4, 5, 6, 12, 16], "arrang": 11, "array": 15, "arriv": [0, 6], "as_ordered_dict": 6, "asci": 11, "asked": 2, "asking": 5, "aspas": 6, "assert": 6, "assets": 2, "assigned": [6, 11, 12, 14], "assigning": 14, "assignment": 8, "assim": [6, 8], "assinatur": [4, 5], "assist": 4, "assistent": 9, "assoc": [6, 10], "associated": [6, 11, 12], "assum": [2, 5, 6, 7, 10], "assumed": 14, "assuming": 5, "async": 15, "asynci": 16, "at": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "atend": [2, 6], "ativ": [2, 6], "atrav\u00e9s": [6, 8, 9, 12], "atribut": [5, 9], "atribu\u00edd": 6, "attached": [6, 12], "attaching": 14, "attacks": [5, 9], "attempted": 11, "attempting": 6, "attempts": [6, 12], "attention": 6, "attribut": [4, 5, 6, 9, 11, 13, 14, 15], "attributes_plugin": 15, "attributespluginhtmx": 15, "attrs": [11, 13, 15], "atual": [2, 6], "atualiz": [2, 16], "aug": 11, "august": 11, "aul": 13, "aut": 9, "autentic": 6, "auth": [0, 2, 4, 6, 8, 9, 15, 16], "auth_group": 12, "auth_groups": 12, "auth_plugins": 12, "auth_us": [5, 6, 12], "auth_user_tag_groups": [6, 12], "auth_user_tagged_groups": 12, "authenticat": 12, "authenticated": [5, 6], "authentication": [5, 13, 16], "authoriz": [6, 7], "authorization": [5, 16], "authorized": 12, "auto_import": 6, "auto_process": [13, 15], "autocomplete_query": 15, "autodelet": 6, "autogenerated": 6, "automat": [2, 4, 6, 8, 9, 12, 13], "automatic": [4, 6, 8, 14], "automatically": [2, 3, 4, 5, 6, 11, 12, 13, 14, 15], "autoriz": 6, "auxili": [5, 6, 8, 9], "availabl": [1, 2, 6, 8, 9, 12, 14, 15], "avali": [6, 8], "avanc": 16, "avis": [5, 6, 12], "avoid": [1, 2, 5, 6, 11], "avoided": 8, "avoiding": [5, 11], "avoids": 6, "awar": 6, "awesom": [8, 13], "axel": 0, "axolotl": 0, "azul": 4, "a\u00e7\u00e3": [4, 5, 6, 12, 16], "a\u00e7\u00f5": 5, "a\u00e7\u00fac": 5, "b": [5, 6, 8, 9, 11, 14, 15], "back": [5, 6, 11], "backend": 6, "backends": 6, "background": [2, 4, 11, 15], "backported": 6, "backslash": 4, "backup": [2, 6, 11], "backward": 11, "backwards": [0, 11], "bad_days": 6, "bails": 6, "banan": 11, "banc": [0, 1, 3, 4, 5, 12], "bar": [8, 13], "barc": 6, "barr": 4, "barri": 0, "bas": [0, 2, 4, 8, 13, 15], "base64": [6, 8, 15], "base_dn": 12, "baseadapt": 6, "based": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 15], "bash": 2, "basic": [2, 5, 16], "basically": 15, "bast": 2, "bat": 2, "batman": [7, 11, 13], "battl": 0, "be": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "beasley": 0, "becaus": [0, 2, 4, 5, 6, 8, 9, 11, 13, 15], "becom": 11, "bed": 10, "been": [0, 2, 5, 6, 8, 11], "befor": [2, 5, 6, 8, 11, 12, 13], "before_delet": 6, "before_insert": 6, "before_updat": 6, "begin": [11, 13], "beginners": 2, "beginning": [8, 11, 12], "behavior": [6, 11, 14, 15], "behaviour": [2, 11, 13], "being": [5, 6, 7, 8, 11, 15], "believ": [0, 5], "belong": [12, 14], "belonging": 6, "belongs": 12, "below": [5, 6, 7, 11, 13], "bem": [0, 4, 5, 6, 12], "benefits": 15, "benef\u00edci": 6, "best": [2, 5, 6], "bett": [0, 1, 2, 4, 6, 13, 14], "between": [5, 9, 11, 14], "beyond": 11, "bgcolor": 9, "bibliotec": [0, 4, 10], "big": 14, "bigint": 6, "bigint_id": 6, "bilhet": [0, 3, 6], "bilh\u00e9t": 0, "bin": [1, 2], "binari": 2, "binary": 6, "bind": 15, "bin\u00e1ri": 6, "birthplac": 6, "bit": 11, "bitbucket": 1, "black": [8, 11], "blank": [11, 13], "blanks": 11, "blink": 15, "blob": [1, 6], "bloc": [8, 9], "block": [12, 15], "blockquot": 9, "blocks": 8, "blog": [1, 6, 9], "blog_post": 6, "bloqu": 12, "blu": [4, 6, 11, 14], "bmp": 11, "boas": 2, "boat": 6, "bob": 6, "body": [4, 8, 12, 13, 15], "bold": 9, "bom": 2, "bonit": 6, "book": 6, "boolean": [6, 13], "booleans": 6, "boost": [6, 8], "bootstrap": 13, "bord": 15, "botar": 0, "both": [1, 2, 5, 6, 8, 11, 14], "bottl": [0, 4, 5, 8, 14], "bottle_app": 2, "bottlepy": [4, 5], "bottom": 11, "bot\u00e3": 3, "bot\u00f5": [3, 16], "boundari": 11, "boundary": 11, "box": [0, 6, 11], "br": [8, 9], "bracket": 8, "brackets": [8, 11], "branch": [1, 2], "break": [2, 6], "breaking": 6, "breaks": 11, "breez": 1, "brev": 4, "briefly": 2, "broken": [0, 6, 11], "brows": [1, 2, 3, 5, 7, 8, 13, 15], "browsers": 15, "browsing": 3, "bruc": [7, 13], "brut": 6, "bsd": 1, "buff": 6, "bug": 6, "bugs": 1, "build": [1, 2, 4, 5, 9, 13, 15], "building": [4, 11, 15], "built": [0, 1, 4, 6, 8, 11, 15, 16], "bulk_insert": 6, "bulm": [11, 13, 15], "bunch": 2, "busc": [3, 6, 13], "but": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "button": [3, 4, 5, 11, 13, 15], "buttons": [9, 11, 13, 15], "by": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "bypass": [11, 12], "bypassed": 12, "byte": 11, "bytecod": 8, "bytes": 6, "b\u00e1sic": [0, 1, 6, 16], "c": [1, 2, 3, 5, 6, 8, 9, 11, 14], "ca": 11, "cabec": [9, 13], "cabe\u00e7alh": [4, 9], "cach": [0, 2, 4, 5, 11], "cache_db_select": 6, "cacheabl": 6, "cached": 5, "cache\u00e1vel": 6, "caching": [6, 16], "cachorr": 10, "cad": [2, 4, 5, 8, 10, 13], "caiu": 6, "caix": [0, 6, 9], "calcul": 6, "calend": 13, "call": [0, 5, 6, 8, 11, 12, 15], "callabl": [9, 11], "callback": [6, 12, 15], "callback_url": 12, "called": [1, 2, 5, 6, 7, 8, 9, 11, 13, 14, 15], "calling": [5, 6, 8], "calls": [2, 6, 8, 15], "cam": [6, 10], "caminh": [2, 4, 6, 13], "camp": [5, 7, 9, 11, 16], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "cancel": [11, 15], "cancel_attrs": 15, "cannot": [2, 5, 6, 8, 11, 15], "capabiliti": [13, 15], "capac": 0, "capaz": [1, 2], "capitaliz": 15, "cap\u00edtul": [2, 4, 5, 14], "car": 6, "caract": [6, 9], "caracter": 4, "caracter\u00edst": 16, "card": 6, "careful": [5, 6, 8, 14, 15], "carg": 6, "carl": 6, "carreg": [0, 6], "carroll": 0, "carry": 14, "cart": 5, "car\u00e1ct": [4, 6], "cas": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15], "cascading": 6, "cascat": 6, "case_sensitiv": 6, "cassi": 0, "caus": [6, 11], "caveat": [6, 8, 14], "caveats": 16, "cd": 2, "cdnjs": [8, 13], "cent": [5, 6, 8], "century": 11, "ceo": [7, 13], "cerc": 6, "cert": [1, 2, 6, 13], "certain": [6, 8, 11, 13], "certez": 6, "certificat": 2, "certifiqu": [6, 10], "cf": 4, "cgi": 11, "cha": 6, "challeng": 12, "cham": [2, 4, 5, 7, 8, 10, 13], "chang": [1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16], "change_email": 12, "change_password": [8, 12], "changed": [2, 3, 4, 5, 6, 8, 11, 14, 15], "changed_fil": 4, "changing": 6, "channel": 1, "chapt": [3, 4, 5, 6, 8, 9, 11, 13], "chapters": [1, 5], "char": 6, "charact": [6, 11], "characters": [6, 11], "charg": [2, 14], "chars": 12, "chat": 2, "chats": 1, "chav": [4, 8, 9, 10, 13], "chec": 10, "check": [3, 4, 5, 6, 11, 12, 13], "check_": 15, "check_nonnegative_quantity": 11, "check_reserved": 6, "checkbox": [8, 9], "checkboxwidget": 11, "checked": [9, 11], "checking": [1, 11, 12, 14], "checks": [2, 6, 8, 11, 12], "cherry": 11, "chicag": 6, "choic": [1, 11, 13], "choos": [11, 12], "choosen": 6, "chrom": [3, 15], "cient": 6, "cinc": 6, "circul": 6, "circumstanc": 5, "cit": [6, 9, 11], "cit0801": 7, "cit0802": 7, "cit1601": 15, "clar": 6, "clark": [7, 13], "clash": 11, "class": [5, 6, 8, 9, 11, 12, 14, 15], "class_inner_exceptions": 15, "class_styl": 13, "classific": [6, 13], "claud": 6, "claus": 6, "cle": 11, "clean": [5, 9], "cleanup": 0, "clearly": 15, "clev": 11, "cli": [1, 2], "clic": 13, "clich": 5, "click": [3, 9, 11, 13, 15], "clickabl": 13, "clicked": [13, 15], "clicks": [6, 15], "client": [0, 7, 11, 12, 15], "client_id": 12, "client_ip": 5, "client_secret": 12, "clients": 5, "clientsid": 15, "cliqu": [3, 13], "clock": 11, "clon": [2, 4, 6, 15], "cloned": 2, "clos": [6, 9], "closed": [6, 8], "closing": [5, 6], "cloudflar": [8, 13], "cl\u00e1usul": [6, 8], "cmd": 2, "cn": 12, "co": [6, 11], "coa": 6, "cod": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "codific": 6, "coding": 1, "cois": 6, "colegial": 12, "collapsibl": 9, "collection": [0, 14], "collections": 2, "collects": 2, "colnam": 6, "coloc": 16, "colon": 8, "color": [4, 6, 8, 9, 11, 15], "colors": [4, 6], "cols": 9, "colspan": 9, "column": [6, 13], "columns": [6, 16], "colun": [6, 13], "comand": 6, "comando": [3, 4, 6, 9, 16], "combin": [4, 5, 9, 13], "combined": [5, 6, 11], "come": [0, 5], "comec": [1, 2, 4, 6], "comes": [0, 5, 8, 11, 12, 13, 14, 15], "comet": 6, "comics": 11, "coming": 5, "comm": [2, 15], "command": [2, 4, 6, 8], "commands": [2, 4, 6, 8, 9], "comment": [6, 9], "commit": [5, 7, 13], "commits": [5, 6], "committed": [6, 14], "common": [2, 4, 5, 8, 11, 12, 14, 15], "common_filt": 6, "common_filters": 6, "commonality": 8, "communicat": 5, "communication": 6, "communications": 5, "community": [0, 6], "compact": 6, "company": 13, "compar": [6, 14], "compared": 0, "comparison": 11, "compartilh": [5, 6], "compat": 6, "compatibility": 11, "compatibl": [0, 1, 9, 11], "competitor": 0, "compil": [4, 8, 9, 11], "compilation": 8, "compiled": [4, 8, 9, 11], "compiled_css": 4, "compiling": 8, "complet": [0, 2, 6, 9, 11, 13], "completed": [0, 6], "completely": [6, 8, 12], "complex": [1, 2, 4, 5, 6, 8, 9, 12, 14, 15], "complexiti": 15, "complexity": 15, "compliant": 15, "complicated": 5, "component": [0, 4, 5, 8, 9, 11, 12, 15], "component_1": 15, "components": [0, 3, 9, 11, 15], "comport": [4, 6, 9, 13], "compos": 2, "composing": 5, "compost": [6, 9], "compreend": [1, 13], "compressed": 4, "comprim": 3, "compriment": 6, "compris": 3, "compromet": [4, 6], "compromis": 0, "comput": 1, "computed": 16, "comp\u00f5": 6, "comum": [5, 6], "comunic": 6, "comuns": 3, "concaten": 6, "concatenat": 9, "concatenating": 9, "conceived": 6, "concept": [0, 12], "conch": 2, "concorrent": 0, "concurrency": [6, 15], "concurrently": [2, 11], "cond": 5, "condicion": 8, "condicional": 6, "condition": [6, 11, 16], "conditions": [6, 11], "condi\u00e7\u00e3": 6, "condi\u00e7\u00f5": 6, "conect": [6, 12], "conex\u00e3": 4, "conf": 6, "confiabil": 1, "config": [2, 4], "configur": [3, 12, 13, 14, 16], "configuration": 1, "configurations": 2, "configured": [5, 11, 14], "confirm": [2, 11, 13], "confirmation": 15, "confirmations": 15, "confirms": 12, "conflicts": 6, "conflit": [0, 2, 4, 6], "conform": [6, 12], "confund": 6, "confus": 6, "conhec": [1, 6], "conjunt": [6, 9, 10, 13], "conn": 5, "connect": [3, 6], "connecting": 6, "connection": [5, 6, 11], "connectionpool": 6, "connections": [5, 6, 14], "cons": 6, "conseg": 6, "consegu": 6, "consequenc": [6, 11, 15], "consequently": 11, "consid": [5, 8, 9, 11, 13], "consider": [6, 8, 9], "considered": [5, 6, 8, 14], "consist": [6, 14], "consistency": 8, "consistent": 5, "consists": [6, 13], "consol": [2, 9, 12, 15], "constant": 11, "constraining": 14, "constru": [6, 9, 13], "constructing": 6, "construction": 4, "constructor": [6, 12, 16], "constructors": 11, "construtor": [5, 9, 11, 16], "constru\u00e7\u00e3": [6, 9, 13], "constru\u00edd": [6, 13], "constr\u00f3": 6, "consult": [1, 7, 12, 13], "consulta1": 6, "cont": [2, 5, 9, 10, 12], "contador": [5, 6], "contag": 6, "contain": [2, 4, 5, 6, 8, 9, 11, 12, 15], "contained": [9, 11, 13], "containing": [0, 2, 5, 11, 12, 13, 15], "contains": [3, 5, 7, 8, 10, 11, 13, 14, 15], "contect": 8, "contenh": 5, "content": [2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "contents": [8, 9, 15], "context": [3, 5, 6, 8], "contextlib": 6, "contexts": 5, "conte\u00fad": [4, 6, 9], "continu": [0, 6, 8, 15], "contr": 6, "contribu": 16, "contributed": 0, "control": [2, 8, 11, 12, 13, 15], "controll": [5, 6, 8, 9, 11, 12, 13, 14, 15], "controllers": [4, 6, 8, 9, 11, 14, 15], "controls": 11, "contr\u00e1ri": [0, 4, 6, 8], "cont\u00e9m": [2, 4, 5, 6], "cont\u00eain": 6, "cont\u00eam": [6, 10], "convenienc": 5, "convenient": [6, 16], "convention": [8, 11, 14], "conventions": [4, 6], "conven\u00e7\u00e3": 4, "conversion": [11, 16], "convers\u00e3": 6, "convert": [4, 6, 9], "converted": [1, 6, 11], "converting": 6, "converts": 11, "cooki": [0, 4, 6, 15], "copi": 2, "copied": 2, "copy": [1, 2, 3, 4, 6, 13], "copyfileobj": 6, "copying": [2, 8, 9, 16], "cor": [1, 2, 4, 5, 11], "cord": [4, 6, 10], "corey": 1, "corn": 13, "cornerston": 0, "corp": [8, 9], "corr": 16, "correct": 12, "correctly": 11, "corrent": 6, "correspond": [2, 4, 6, 10], "correspondent": [4, 6, 9], "corresponding": [3, 6, 11, 12, 13, 14], "corresponds": [2, 6, 9], "corret": 6, "corrig": 1, "corromp": 6, "corrupted": 6, "corruption": 6, "costum": 6, "cot": 6, "cota\u00e7\u00e3": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 9, 11, 12, 14], "count": [5, 7, 12, 13, 15], "coupl": 15, "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 4, 5, 6, 8, 11, 12, 13, 15], "created": [0, 2, 4, 5, 6, 8, 11, 12], "created_by": 6, "created_on": 6, "creating": [1, 2, 6, 12, 14, 16], "creation": 6, "creativity": 12, "credential_decod": 6, "cresc": 6, "cri": [2, 3, 4, 5, 6, 8, 9, 12, 13], "cria\u00e7\u00e3": [2, 6, 13], "crit": 11, "critical": 2, "crit\u00e9ri": 6, "cross": [5, 9], "crossorigin": 8, "crt": [2, 6], "crud": [3, 11, 15], "cruz": [1, 6], "crypt": 2, "cs": 5, "csrf": [5, 11], "csrf_protection": 11, "csrf_session": 11, "css": [1, 4, 5, 8, 9, 11, 12, 13, 15], "csv": 14, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "cuj": 6, "current": [5, 6, 9, 12, 13, 14, 15], "current_record": 6, "currently": [2, 5, 8], "curs": 1, "cursor": [6, 15], "curt": 6, "custom": [0, 4, 6, 8, 9, 14, 15, 16], "custom_qualifi": 6, "customiz": [8, 11, 13], "customizabl": [11, 13], "customization": 11, "customizing": 16, "cx_oracl": 6, "c\u00edclic": 6, "c\u00f3dig": [4, 5, 6, 8, 9], "c\u00f3p": 6, "d": [2, 7, 9, 11], "dad": [0, 1, 3, 4, 5, 12, 16], "daemon": 2, "dal": [2, 4, 7, 11, 13, 15, 16], "dan": 0, "danc": 12, "dand": 4, "dangerous": 14, "daquel": 6, "dar": 6, "dash": 11, "dashboard": [2, 4, 6, 8, 11, 16], "dashboard_mod": 2, "dat": [0, 2, 5, 6, 7, 8, 9, 12, 13, 14, 15], "data_label": 15, "databas": [0, 1, 3, 7, 12, 13, 14, 15, 16], "datalist": 15, "datetim": [4, 5, 6, 7, 11, 15], "datetimewidget": 11, "day": 11, "days": 11, "db": [2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_fold": [5, 7, 11, 13], "db_nam": 6, "db_uid": 6, "dbadmin": 4, "dbi": 11, "dbo": 6, "dbset": 11, "dbstor": 5, "dc": [11, 12], "dd": 11, "deal": [6, 15], "debounc": 15, "debug": [1, 2, 5, 6, 8], "debugg": 1, "debugged": 8, "debuggers": 14, "debugging": [1, 4], "decid": [6, 11, 13], "decim": 4, "decimal": [6, 11], "decimals": 11, "decl": [4, 6], "declar": [0, 4, 5, 6, 8], "declared": 5, "decod": 6, "decode_credentials": 6, "decoded": 6, "decomp\u00f5": 6, "decor": [1, 4, 16], "decorated": 14, "decorator": [4, 5, 6, 14], "decorators": [5, 14], "dedic": [1, 4, 14], "dedicated": [1, 5, 9], "def": [4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "default": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "defaults": [5, 11, 13, 14], "deferred": [6, 15], "defin": [0, 4, 5, 8, 9, 11, 13, 15], "define_tabl": [5, 7, 11, 12, 13, 14], "defined": [2, 4, 5, 6, 8, 11, 12, 13, 14, 15], "defining": 13, "definit": 11, "definition": [6, 7, 11, 13], "definitions": [6, 7, 14], "defini\u00e7\u00e3": 6, "defini\u00e7\u00f5": 6, "deform": 10, "deix": 12, "del": [5, 6, 9], "delay": 15, "delaying": 15, "deleg": 6, "delet": [2, 4, 7, 11, 13, 15], "deletabl": [11, 13], "delete_record": 6, "deleted": 6, "deleting": [6, 13], "deletion": 6, "deletions": 6, "delimit": [0, 6, 8], "delimiters": [5, 14], "dem": [1, 2, 15], "demand": 6, "denormaliz": 7, "denormalization": 6, "dentr": [0, 2, 4, 6, 13], "deny": 7, "depend": [4, 5, 6], "dependenc": [0, 2, 5, 14], "dependent": [2, 3, 4, 5], "depending": [6, 8, 11, 13], "depends": [5, 6, 14], "deploy": 2, "deployment": 1, "deployment_tools": 2, "depo": [2, 3, 6], "deprecated": [11, 15], "depur": [6, 8], "deriv": 6, "derived": 6, "desat": 6, "desativ": 6, "desc": 13, "descart": 6, "descendant": 9, "descobert": [2, 10], "descompact": 2, "descrev": 6, "describ": [3, 11], "described": [2, 4, 5, 6, 11], "description": [6, 7, 11, 12], "descriptiv": 11, "descrit": [2, 4, 6, 13], "desd": [5, 6], "desej": [1, 2, 5, 6, 12, 13], "desempenh": 6, "desencad": 3, "desenvolv": 0, "desenvolvedor": [1, 8, 12, 13], "desfaz": 6, "design": [0, 12, 15, 16], "designed": [0, 4, 6, 8, 11], "desir": 8, "desired": [5, 11], "desloc": 6, "desnormaliz": 7, "despej": 6, "dess": [0, 5, 6, 12], "dest": [4, 6, 11], "detail": [6, 9, 13, 15], "detail_fields": 11, "detailed": [2, 13], "details": [0, 1, 5, 6, 7, 8, 11, 13], "detalh": [6, 13], "determin": [4, 5, 6, 10, 11, 12, 13], "determined": [8, 11], "determining": 5, "deterministic": 5, "dev": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13], "develop": [5, 6, 8, 12, 13, 14], "developers": [0, 1, 6, 12, 15], "developing": 4, "development": [0, 1, 4, 6], "development_tools": 2, "devic": 8, "devolv": [6, 8], "di": [0, 5], "diagr": 7, "dialect": 6, "dialects": 6, "dialet": 6, "dic": 16, "dicion\u00e1ri": [9, 10, 11], "dict": [4, 5, 6, 10, 11, 13, 14, 15], "dictionari": 6, "dictionary": [4, 5, 6, 9, 11, 14], "did": [0, 4, 15], "dif": 6, "diferenc": 6, "diferent": [2, 5, 6, 10, 13], "diff": 6, "differenc": [6, 11, 14], "different": [0, 2, 5, 6, 8, 11, 12, 14, 15], "differs": [6, 13], "difficult": [2, 15], "dif\u00edcil": 1, "dig": 6, "digit": [11, 12], "dimensions": 11, "dinam": 9, "din\u00e2m": [6, 16], "dir": [2, 11, 15], "direct": 6, "directiv": [2, 8, 11], "directly": [2, 4, 6, 7, 9, 11, 12, 13, 15], "directory": 12, "direit": [3, 6], "diret": [1, 5, 6, 8], "diret\u00f3ri": 4, "dirnam": [5, 7, 11, 13], "disabl": [6, 13], "disabled": [7, 9, 11], "disallow": 11, "discord_client_id": 12, "discord_client_secret": 12, "discount": 6, "discounted_total": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discriminator": 12, "discuss": 3, "discussed": [6, 8, 9, 11], "discussion": 6, "discuss\u00e3": 1, "discuss\u00f5": 1, "discut": 6, "disk": [5, 6], "dismissal": 14, "dismissibl": 5, "dispar": 6, "display": [5, 11, 12, 13, 15], "displayed": [3, 6, 9, 11, 13, 15], "displaying": [5, 11, 13], "displays": [12, 13], "dispon": 6, "dispon\u00edv": 1, "disposit": [4, 5, 12], "diss": [4, 6, 13], "distinct": [8, 11], "distinction": 6, "distin\u00e7\u00e3": 6, "distribu": 6, "distribut": 6, "distributed_transaction_commit": 6, "distribution": 6, "ditched": 0, "div": [4, 5, 8, 11, 14, 15], "divisibl": [8, 11], "division": [8, 9], "divis\u00e3": 8, "divmod": 6, "diz": [4, 6, 12, 13], "djang": [0, 1, 14], "do_connect": 6, "dobr": 6, "dobrag": 6, "doc": 1, "dockerfil": 2, "docs": [1, 2, 4], "doctor": 6, "doctyp": [8, 13], "document": [6, 8, 9, 11, 15], "documentation": [3, 11, 15], "documentations": 5, "documented": [5, 11], "does": [0, 2, 5, 6, 8, 11, 12, 13, 14, 15], "doesn": 5, "dog": [10, 11, 15], "doh": 11, "doing": [6, 11, 15], "dois": [0, 5, 6, 8], "dom": [8, 16], "domain": [11, 12], "don": [2, 4, 6, 8, 11, 12, 13, 14], "dot": 11, "doubl": [2, 6, 8], "doubt": 13, "down": [11, 15], "download": 2, "downs": 6, "downsid": [6, 14], "dramat": 6, "driv": 6, "driven": 0, "driver_args": 6, "drivers": 6, "drop": 11, "dropdown": [11, 13, 15], "dropdowns": 15, "dropping": 6, "dsn": 6, "dual": 11, "duas": [5, 6], "due": [6, 7, 11], "dummy": [6, 8], "dummyrespons": 8, "dump": 5, "dumpfil": 6, "dumps": [6, 15], "duplicat": 6, "durability": 7, "during": 13, "dynamic": [4, 8, 12], "dynamically": [6, 7, 8, 11], "d\u00e1": [0, 2, 13], "d\u00edgit": [4, 6], "ea": 6, "each": [2, 5, 6, 7, 8, 9, 11, 12, 13, 14], "earli": 15, "early": 5, "easi": [7, 8], "easiest": 6, "easily": [6, 8, 9, 11, 13], "easy": [5, 8, 11], "ebook": 1, "echo": 4, "ecosyst": 15, "edge": 15, "edif\u00edci": 5, "edit": [0, 2, 3, 4, 8, 11, 12, 13, 14, 15], "edit_sidec": 15, "editabl": [13, 14], "editing": [8, 9, 11, 12, 13], "editor": [1, 8], "editors": 8, "edi\u00e7\u00e3": 0, "edi\u00e7\u00f5": 3, "education": 2, "efeit": 6, "efet": 6, "effect": [3, 6, 11], "efficient": 0, "efficiently": [1, 14], "efforts": 1, "efg": 9, "eficient": [5, 6], "eith": [6, 11], "el": 9, "element": [6, 8, 9, 11, 13, 15], "elements": [6, 9, 11, 15], "elev": 6, "elimin": [6, 13], "else": [2, 6, 11, 12, 13, 14, 15], "elt": 15, "el\u00e9tr": [4, 5, 12], "emacs": 8, "email": [2, 8, 11, 12, 14], "emails": 11, "emails_onvalidation": 11, "embed": 9, "embedded": [8, 11], "embedding": 8, "embor": 6, "emerging": 15, "emit": [3, 6], "employ": 5, "employe": 13, "empreg": 13, "empres": 13, "empty": [2, 4, 11, 15], "empty_regex": 11, "en": [5, 7], "enabl": [1, 5, 7, 9, 12, 14, 15], "enable_record_versioning": 6, "enabled": [5, 7, 12, 14], "encaix": 4, "encapsulat": [8, 9], "encerr": 8, "enclosed": 6, "enclosing": 8, "encod": 6, "encoded": [5, 6, 11, 15], "encoding": 6, "encontr": [4, 6, 8, 10, 12], "encrypted": [2, 5], "encryption": 0, "end": [4, 6, 8, 11, 12, 13, 15], "enderec": 6, "ending": 8, "endpoint": [12, 15], "ends": [6, 8, 14], "enforc": [5, 11], "enforced": [6, 11, 14], "enfrent": [1, 6], "engin": [6, 11], "engineering": 2, "english": 5, "enough": [11, 12], "enquant": [0, 6, 8], "ensin": 12, "ensur": 11, "entant": [6, 8, 9, 13], "entend": 6, "enter": [4, 11, 12], "entered": 9, "entering": 5, "enterpris": [1, 12], "entidad": 6, "entir": [8, 14, 15], "entity_quoting": 6, "entrad": [4, 6, 9, 10], "entri": [7, 11, 13], "entropy": 11, "entry": [0, 6, 14], "ent\u00e3": [2, 4, 6, 12], "env": [1, 14], "envelop": 15, "envi": [9, 13], "environ": [5, 14], "environment": [0, 1, 4, 5, 6], "environments": 1, "envolt": 10, "envolv": 6, "eo": 6, "epub": 1, "eq": 7, "equal": [7, 11, 12, 15], "equals": [9, 12], "equip": 5, "equivalent": [4, 5, 6, 9, 11, 14], "equivalently": 9, "errad": 6, "errlog": 5, "erro": [2, 3, 6], "error": [2, 3, 5, 6, 7, 8, 9, 11, 15], "error_messag": 11, "errorlog": 2, "errors": [1, 5, 6, 7, 11, 14], "escap": [6, 8, 9], "escaped": [6, 8, 9], "escaping": [6, 8], "escolh": [1, 4, 6], "escond": 6, "escrav": 6, "escrev": [6, 8, 9], "escrit": [6, 8], "espac": [6, 10, 13], "espec": [5, 6, 9], "especial": [2, 4, 6, 10], "especializ": 6, "especially": [0, 2, 5, 11, 12], "especif": [4, 6], "especific": [4, 5, 6], "especifiqu": 13, "espec\u00edf": [1, 2, 6], "esper": [4, 5, 6], "esprim": 4, "esquec": 6, "esquem": 6, "esquerd": [6, 13], "estabelec": 6, "establish": 6, "established": 6, "establishing": 14, "estad": [5, 6], "estam": 6, "estar": [4, 6, 9], "estend": [0, 5, 6], "estil": 13, "estiv": 6, "estrangeir": [1, 13], "estreit": 6, "estrutur": [4, 5, 6, 10], "est\u00e1t": [9, 16], "est\u00e3": [5, 6, 7, 9, 12], "etap": 6, "etc": [4, 5, 6, 7, 10, 14], "etiquet": [6, 9], "eval": 15, "evaluat": [5, 11, 15], "evaluated": [6, 7], "even": [1, 4, 5, 6, 8, 9, 11, 13, 14], "event": 6, "event_tim": 6, "events": [2, 15], "eventually": 5, "ever": 6, "every": [0, 5, 6, 12, 13, 14, 15], "everyon": [0, 1], "everything": [2, 14], "evit": [0, 2, 6, 8, 11], "evolution": 0, "ex": 6, "exact": [8, 14], "exactly": 5, "exampl": [1, 2, 4, 5, 6, 8, 9, 10, 12, 16], "exat": [6, 8], "excellent": [1, 13], "except": [2, 5, 6, 8, 9, 11, 12, 15], "exception": [5, 6, 11, 12], "exceptions": [4, 5, 15], "excep\u00e7\u00e3": 8, "excerpt": 8, "excet": [5, 6], "exce\u00e7\u00e3": [4, 5, 6, 8], "exce\u00e7\u00f5": 4, "exclu": 6, "exclud": 11, "exclus": 6, "exclusiv": [11, 12], "exclusively": [0, 5, 6], "exclus\u00e3": 13, "exclu\u00edd": [2, 6], "exe": 2, "execu": [2, 4], "execut": [0, 2, 3, 6, 11], "executabl": [6, 9], "executed": [2, 5, 6, 8, 14, 15], "execution": 1, "exempl": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "exercis": 5, "exerc\u00edci": 12, "exib": [3, 6, 8, 9, 13], "exibi\u00e7\u00e3": [12, 13], "exig": [1, 2, 6, 12], "exist": [1, 2, 4, 5, 6, 8, 11, 15], "existenc": 12, "existent": [2, 6, 12, 13], "existing": [2, 5, 6, 11], "exists": [5, 6, 11], "exit": 2, "exiting": 5, "exp": [4, 6], "expand": 3, "expect": [6, 11], "expected": 14, "expects": [2, 9], "experienc": [1, 12], "experienced": 0, "experiment": [1, 11], "experimental": [2, 5], "experimenting": 1, "expir": 5, "expiration": 5, "explain": 11, "explained": [5, 6, 11, 13], "explanatory": 6, "explic": [4, 6], "explicit": [0, 2, 4, 5, 6, 8, 11], "explicitly": [0, 2, 5, 6, 8, 9, 11], "explict": 6, "exploring": 3, "expl\u00edcit": [6, 12], "expor": [4, 12], "export": 16, "export_to_csv_fil": 6, "exporting": 6, "expos": [4, 5], "expost": 7, "express": 11, "expressed": 11, "expression": [4, 6, 8, 10, 11, 13], "expressions": [9, 11, 15], "express\u00e3": [6, 7, 10, 13], "express\u00f5": 10, "exp\u00f5": [0, 3, 4, 6, 12], "extend": [5, 6, 12, 14, 15], "extended": 8, "extends": [6, 8, 15], "extensibl": 14, "extension": [11, 14], "extensions": 11, "extensively": 3, "extens\u00e3": 6, "extern": 2, "external": 6, "extra": [5, 6, 11, 12], "extract": [6, 11], "extracted": 6, "extracts": 15, "extras": 6, "extra\u00edd": 6, "extrem": 6, "f": [6, 12, 13, 14, 15], "fa": 13, "facebook": [0, 5], "facil": [4, 5, 6], "facilitat": 4, "fact": [4, 5, 14], "factori": 9, "fail": [6, 8, 11], "failed": 6, "fails": [3, 11], "failur": [6, 11, 15], "fak": 6, "fake_migrate_all": 6, "falh": 4, "fall": 11, "fals": [2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "falt": 6, "famous": 1, "fancy": 15, "far": [13, 15], "fas": 6, "fast": [0, 4, 6, 8, 14, 15], "fat": 6, "fath": 6, "father_id": 6, "faz": [2, 5, 8, 9, 11, 12], "fb00": 11, "fdb": 6, "fe80": 11, "feasibl": [2, 11], "featur": [0, 4, 6, 7, 8, 14, 16], "february": 5, "fech": [6, 8, 9], "fechament": 9, "feit": 6, "fetch": [6, 14, 15], "fetchon": 6, "few": [8, 12, 15], "fez": [2, 6], "ff00": 11, "fic": 6, "ficheir": 6, "fict\u00edc": 6, "fict\u00edci": 6, "fid": 6, "field": [2, 4, 5, 7, 12, 13, 14, 15, 16], "field1": 6, "field2": 6, "field3": 6, "field_id": 13, "fieldnam": [6, 15], "fields": [7, 11, 12, 13, 14, 16], "fieldstorag": 11, "fifth": 13, "fil": [0, 1, 2, 3, 5, 6, 8, 9, 10, 12, 13, 15, 16], "file_content": [6, 15], "file_nam": [6, 15], "file_path": 14, "fileir": 6, "filenam": [2, 4, 5, 6, 11], "filep": 4, "filepaths": 4, "filesyst": [4, 5, 6], "fileuploadwidget": 11, "fill": [11, 15], "filled": 11, "filt": [2, 4, 7, 11, 13], "filter_in": 11, "filter_out": 13, "filtered": 12, "filters": [4, 11], "filtr": [12, 13], "filtrag": [4, 13], "fim": [1, 2, 5, 6], "fin": [2, 12, 13], "final": [1, 2, 5, 6, 10], "finally": [4, 13], "find": [1, 2, 4, 11, 12, 13], "find_by_tag": 12, "find_match": 10, "findall": 11, "finding": 13, "finds": 6, "fins": 6, "firebird": 6, "firebird_embedded": 6, "firebirdadapt": 6, "firebirdembedded": 6, "firebirdembeddedadapt": 6, "firefox": [3, 15], "firfox": 15, "first": [0, 2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15], "first_nam": [4, 5, 12, 13], "first_only": 9, "first_row": 6, "first_row_dict": 6, "fist": 11, "fits": 11, "fix": [5, 6], "fixed": [6, 14], "fixtur": [0, 2, 6, 9, 14, 16], "fixur": 16, "fiz": 1, "fk_field": 15, "fk_tabl": 15, "fkdaog": 8, "flag": 11, "flash": [8, 15, 16], "flask": [0, 14], "flexibil": [0, 13], "flexibility": 15, "flexibl": [6, 12], "flex\u00edv": 0, "flex\u00edvel": 6, "flight": 7, "float": [4, 11], "floating": 11, "flow": 12, "flux": 6, "fn": 2, "focus": 15, "fold": [1, 2, 3, 4, 5, 6, 7, 10, 11, 13, 14], "folders": 2, "follow": [2, 4, 7, 12, 13, 14], "followed": [2, 5, 11], "following": [1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "follows": [5, 6, 11], "font": [6, 8, 11, 13], "foo": 13, "foot": 8, "footers": 8, "footing": 12, "forbid": 11, "forbidden": 11, "forc": [2, 6, 7, 11, 12], "forcing": 11, "foreground": 11, "foreign": 13, "foreign_key_checks": 6, "forgery": 5, "forget": 13, "form": [0, 4, 5, 6, 7, 10, 12, 13, 16], "form_basic": 11, "form_custom_widgets": 11, "form_exampl": 11, "form_minimal": 11, "form_nam": 11, "form_upload": 11, "form_widgets": 11, "format": [4, 5, 7, 9, 10, 12, 13], "formats": 11, "formatt": 15, "forma\u00e7\u00e3": 6, "formdat": 7, "forms": [6, 9, 13, 14, 15], "formstyl": [11, 13, 15], "formstylebootstrap4": 11, "formstylebulm": [11, 13, 15], "formstyledefault": [11, 13], "formstylefactory": 15, "formul\u00e1ri": [6, 12, 13, 16], "fornec": [0, 2, 3, 4, 5, 6, 9, 12, 13], "forum": 3, "foruml\u00e1ri": [6, 9, 16], "forward": 1, "found": [2, 6, 11], "four": [2, 6], "fourth": 11, "fp": 5, "fr": 10, "fracass": 6, "framework": [0, 2, 11, 12, 13, 14, 15], "frameworks": [0, 2, 5, 14, 15], "fras": 6, "fre": [1, 5, 12], "freetext": 15, "frent": 8, "frequently": 11, "frequ\u00eanc": 1, "friendly": [0, 5, 8], "from": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "from_address": 12, "front": [11, 15], "frontends": 15, "fronts": 0, "fsstorag": 5, "ftps": 11, "fug": [6, 8], "full": [2, 4, 6, 8, 11, 15], "fullnam": 6, "fully": [4, 5, 6, 11], "func": [2, 5], "funcion": [6, 16], "funcional": [0, 5, 6], "function": [2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "functional": 15, "functionaliti": 2, "functionality": [0, 8, 14], "functions": [2, 5, 9, 15], "functools": 15, "fund": 4, "fun\u00e7\u00e3": [4, 6, 8, 9], "fun\u00e7\u00f5": [4, 8], "futur": [5, 14, 15], "f\u00e1bric": 6, "f\u00e1cil": [0, 6, 8, 9, 12], "f\u00edsic": 12, "g": [1, 2, 6, 9, 11], "gain": 2, "gananc": 4, "garant": [6, 8], "garraf": 4, "gavgavian": 1, "gend": 6, "general": [5, 6, 11, 12], "generaliz": 6, "generally": [2, 5, 8], "generat": [2, 6, 8, 9, 11, 12, 13, 14, 15], "generated": [1, 5, 6, 8, 11, 13, 15], "generation": 1, "generator": 9, "generic": [2, 4, 5, 6, 11], "generically": 6, "genindex": 16, "gen\u00e9r": 6, "ger": [6, 8, 9, 12, 13], "gerador": 6, "geral": [0, 2, 6, 7, 9], "german": 10, "gest\u00e3": [0, 1], "get": [1, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16], "get_cooki": 15, "get_us": [4, 5, 12, 14], "get_vars": [7, 14], "gets": [8, 12], "getvalu": 6, "gevent": [1, 2], "geventwebsocketserv": 2, "geventws": 2, "gia": 5, "gib": 6, "gif": 11, "git": [1, 2], "github": [2, 3, 4, 6, 13], "gitlat": 1, "giv": [4, 5, 6, 8, 11, 12], "given": [2, 5, 6, 8, 11], "giving": 5, "global": [0, 6, 14, 15], "globally": [2, 6], "globals": [5, 6, 8, 12, 14], "go": [2, 4, 13], "goes": [6, 11], "going": [4, 15], "good": [3, 11], "googl": [0, 3, 5, 8, 11, 13], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gost": 6, "got": 6, "gotch": 6, "gott": 8, "grac": 6, "grad": 0, "grand": 6, "granul": 6, "granulary": 11, "graphql": 7, "grau": 6, "grav": 6, "grava\u00e7\u00f5": 11, "gravidad": 6, "grav\u00e1vel": 6, "great": 15, "green": [4, 6, 14], "grelh": 13, "grid": [0, 16], "grid_class_styl": 13, "grid_tutorial": 13, "gridactionbutton": 13, "gridclassstyl": 13, "gridclassstylebulm": 13, "grids": 13, "group": [1, 3, 5, 12, 14], "group_nam": [5, 12], "groupby": 11, "grouping": 2, "groups": [0, 1, 3, 5, 12, 14], "growing": [0, 15], "grup": [6, 12], "gt": [7, 9], "guarant": 5, "guaranteed": [6, 14], "gui": 3, "guid": 2, "guidelin": 12, "gunicorn": 2, "gunicorngevent": 2, "gz": 11, "h": [2, 11], "h1": [4, 8], "h2": [8, 11], "habilit": 6, "had": 6, "hamburg": 8, "hand": [2, 11, 15], "handl": [2, 4, 5, 6, 14, 15], "handled": [4, 5, 11, 15], "handlers": 4, "handling": 13, "handy": 6, "hanging": 1, "happen": 5, "happens": 6, "hard": 14, "hardcod": 5, "harmoniz": 4, "has": [0, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15], "has_membership": 12, "hash": [2, 6, 11], "hashed": 11, "hav": [0, 1, 2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "head": [4, 5, 6, 8, 13, 15], "headers": [4, 8, 15], "heading": 11, "headings": [9, 13], "height": [11, 13, 15], "hell": [4, 5, 6, 8, 9, 11, 12, 15], "help": [1, 2, 5, 6, 7, 8, 9, 11, 13, 14], "helpers": [4, 6, 8, 11, 13, 14, 16], "helps": [6, 8, 11], "henc": [0, 2, 5, 6, 11], "her": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "herd": 6, "her\u00f3": 7, "hesitat": 6, "hex": 11, "hh": 11, "hid": 13, "hidden": [11, 15], "hidden_div": 15, "hidden_input": 15, "hierarchical": 12, "high": [11, 12], "highest": 11, "highlighting": [1, 8], "highly": [1, 13], "hints": 13, "his": 11, "historical": 0, "history": 11, "hist\u00f3r": [5, 6], "hmac": 11, "ho": 5, "hold": 15, "holds": 6, "hom": 8, "hom\u00f3log": 4, "hor": 6, "hosped": 1, "host": [2, 5, 11, 12], "hosted": 1, "hour": 11, "hous": 14, "housekeeping": 6, "houv": 6, "how": [0, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15], "howev": [6, 8, 11, 15], "href": [8, 9, 12, 13], "hs256": 5, "html": [1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15], "html5": 8, "htmx": [13, 16], "htmx_form": 15, "htmx_form_dem": 15, "htmx_grid": 15, "htmx_list": 15, "htmxautocompletewidget": 15, "http": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "https": [1, 3, 4, 5, 7, 8, 11, 12, 13, 15], "httrespons": 5, "hulk": 11, "hx": 15, "hypertext": 15, "hyphen": 9, "h\u00e1bit": 2, "h\u00edfens": 9, "i": [4, 5, 6, 7, 8, 11, 12, 15], "i18n": 10, "ibm_db_dbi": 6, "icon": [8, 13], "icons": 13, "id": [2, 5, 7, 8, 9, 11, 12, 13, 14, 15], "id1": 6, "id2": 6, "id_field_nam": 13, "id_valu": 13, "ide": [0, 1, 2, 3, 6], "ident": 7, "identical": 14, "identifi": 6, "identific": [6, 9], "identify": 4, "identifying": [5, 11], "identity": [6, 7, 11, 14], "ides": 14, "idiom": 10, "idn": 11, "ids": 6, "ie": 11, "ietf": 11, "if": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "ignor": [5, 6, 8, 11, 13], "ignore_attribute_plugin": 13, "ignore_common_filters": [6, 11], "ignore_field_cas": 6, "ignored": [4, 8, 9, 13, 15], "igual": [6, 7], "iip": 6, "illustrat": 6, "ilustr": [6, 8], "imag": [6, 8, 9, 11], "image_fil": 6, "imagin": [5, 6, 8, 15], "imaging": 11, "imap": 6, "imapadapt": 6, "imaplib": 6, "imediat": 13, "img": 4, "immediat": 2, "immediately": 6, "immensely": 0, "imped": [6, 9], "impersonat": 12, "impersonating": 12, "implement": [5, 6, 8, 12], "implementation": [4, 8, 11, 14], "implementations": 15, "implemented": 6, "implements": [5, 6], "impli": 7, "implications": 5, "implicit": 6, "implicitly": 11, "impl\u00edcit": 6, "impor": 6, "import": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "import_and_sync": 6, "import_from_csv_fil": 6, "important": [0, 2, 4, 5, 6, 11, 12], "imported": [2, 11, 12, 14], "importing": 6, "impos": 8, "imprim": 6, "improved": 11, "improvement": 13, "improving": [11, 12], "in": [0, 1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 14, 16], "inalter": 6, "inclu": [0, 4, 6, 8, 9, 13], "includ": [4, 6, 7, 9, 13, 15], "include_action_button_text": 13, "include_paths": 4, "included": [6, 8, 11, 13], "including": [5, 11, 13, 14, 15], "inclusion": 0, "inclusiv": [0, 11], "inclus\u00e3": 9, "inclu\u00edd": [6, 9], "incoming": 2, "incomum": 6, "incorpor": 6, "incorret": 8, "increased": 5, "increment": 6, "indeed": [0, 5], "indent": 8, "indentation": 8, "indented": 8, "independent": [0, 5, 6, 12], "indesej": [2, 6], "index": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "indic": [4, 6], "indicat": [11, 14], "indicator": 15, "individu": [0, 2, 5, 6], "individual": [5, 6, 7, 8, 11], "indo": 6, "inefficient": 5, "ineficient": 6, "infinit": 6, "info": [2, 4, 5, 12], "inform": [1, 4, 5, 6, 11], "information": [5, 6, 7, 11, 12, 14, 16], "informed": 6, "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingredient": 4, "ingres": 6, "ingresadapt": 6, "ingresdb": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "inic": [2, 4], "inicializ": [4, 5], "init": [4, 13], "initial": [8, 11], "initializ": 2, "initialized": 0, "inject": [11, 16], "injected": [5, 8, 9, 11], "injecting": 9, "injection": 6, "injections": 9, "inje\u00e7\u00e3": 6, "inlin": 15, "inner": [5, 15], "input": [2, 5, 6, 8, 11, 15], "inputs": [11, 15], "insegur": 9, "insensitiv": 11, "inser": [3, 8], "insert": [5, 7, 8, 11, 12, 13, 15], "inserted": 8, "inserting": 11, "inserts": 11, "inser\u00e7\u00f5": 6, "insid": [1, 2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "insir": 6, "insist": 9, "inspector": 8, "inspired": 7, "instal": [3, 6, 12, 16], "install": [2, 6, 12], "installation": 2, "installations": 16, "installed": [0, 1, 2, 3, 4, 5, 6], "installs": 2, "instanc": [6, 9, 11, 13, 15], "instanci": 6, "instantiat": [6, 12, 14], "instantiated": 6, "instantiation": [12, 13], "instead": [1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "instructions": [2, 11], "instru\u00e7\u00e3": 6, "instru\u00e7\u00f5": 6, "inst\u00e2nc": [6, 13], "int": [4, 6, 11, 12, 14], "int2ip": 6, "integ": [2, 6, 7, 9, 11, 15], "integers": 11, "integr": 0, "integrated": 1, "integration": 15, "integrity": 8, "inteir": [4, 6], "intended": [6, 15], "intentionally": 11, "interaction": 5, "interag": 0, "interchangeably": 12, "interfac": [0, 3, 5, 6, 13, 14, 15], "interior": 8, "intermedi\u00e1r": 6, "intern": [5, 6], "internacionaliz": [0, 4, 16], "internal": [0, 1, 8, 12], "internally": [4, 5, 6, 13], "internationaliz": 11, "internationalization": [5, 11, 14], "internationalized": 11, "interpret": [0, 6], "interpreted": 9, "interpreting": 7, "interromp": 6, "intersec\u00e7\u00e3": 6, "into": [0, 2, 4, 5, 6, 8, 9, 11, 14, 15], "introdu": 2, "introduc": 0, "introduction": [1, 16], "introduz": 8, "intuitively": 11, "invalid": [2, 6, 11], "invalidated": 5, "invalidating": 11, "invers": 6, "invert": [6, 11], "invisibl": 6, "involv": [6, 13, 14], "involved": [6, 8], "inv\u00e9s": 6, "in\u00edci": 6, "in\u00fatil": 6, "io": [2, 6], "ip": [6, 11], "ip2int": 6, "ip_list": 12, "ipaddr": 6, "ipaddress": 12, "iptabl": 2, "ipv4": [6, 11], "ipv4address": 12, "ipv4network": 12, "ipv6": 11, "irem": [4, 5], "ir\u00e1": [2, 3, 4, 6, 8, 12, 13], "is": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "is_6to4": 11, "is_activ": 6, "is_automatic": 11, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_impersonating": 12, "is_in_db": [6, 13], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_local": 11, "is_localhost": 11, "is_multicast": 11, "is_not_empty": 6, "is_null_or": 13, "is_privat": 11, "is_public": 6, "is_reserved": 11, "is_routeabl": 11, "is_tered": 11, "is_tim": 6, "isdir": [7, 11, 13], "isn": [11, 13], "iso": 7, "issu": [0, 6], "it": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "italian": [5, 10], "item": [6, 8, 9], "itemize1": 8, "itemize2": 8, "items": [6, 7, 8, 11], "itens": 6, "iter": 8, "iterabl": [6, 11], "iterations": 11, "iterators": 6, "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "itself": [2, 6, 11, 15], "it\u00e1l": 9, "iv": 6, "janel": 2, "javascript": [1, 4, 7, 9, 15], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlit": 6, "jdbcsqliteadapt": 6, "jetbrains": 1, "jim": [0, 1, 13], "jinja2": 5, "job": [7, 11, 13], "jog": [6, 10], "john": [0, 6], "join": [4, 5, 7, 11, 13, 14], "joined": 13, "joins": [13, 16], "jonathan": 6, "jorn": 1, "journalist": [7, 13], "jpeg": 11, "jpg": 11, "jpsteil": 13, "jquery": [9, 11, 15], "js": [0, 4, 5, 8, 10, 14, 16], "jsl": 15, "json": [0, 1, 2, 4, 5, 6, 7, 10, 11, 14, 15], "junt": [9, 13], "jun\u00e7\u00e3": [6, 12], "jun\u00e7\u00f5": 6, "just": [1, 2, 4, 5, 6, 7, 8, 11, 13, 15], "jwt": 5, "jython": 6, "k": [5, 8, 14], "kargs": 9, "kbd": 2, "kbytes": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 9, 11, 14], "keep_valu": 11, "keeps": [5, 13], "kell": 0, "ken": 6, "kent": [7, 13], "kevin": 0, "key": [2, 4, 5, 6, 7, 9, 11, 12, 16], "keycod": 15, "keyed": 6, "keys": [6, 7], "keyup": 15, "keyword": [6, 8, 9], "keywords": 6, "kfield": 15, "kind": 4, "kindness": 0, "kinterbasdb": 6, "know": [5, 13], "known": [6, 8], "known_expressions": 10, "knows": 5, "ktabl": 15, "kwargs": [6, 15], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 11], "la": [4, 6], "label": [6, 7, 8, 11, 15], "labeling": 14, "labels": 11, "lac": 6, "lacking": 11, "lacks": 14, "lad": [1, 5, 6], "lambd": [5, 6, 9, 11, 13, 15], "languag": [1, 4, 5, 8, 10, 14, 15], "larg": [0, 11], "last": [1, 5, 8, 11, 12, 13, 15], "last_insert_id": 6, "last_nam": [5, 12, 13], "last_row": 6, "lastdot": 11, "lastrowid": 6, "lat": [1, 2, 4, 5, 6, 8, 9, 11, 13], "latest": [2, 6, 14], "latin1": 6, "latt": [6, 11, 14], "launch": [1, 2], "lax": 5, "lay": [5, 14, 16], "layers": 5, "layout": [11, 12, 13, 14, 15, 16], "layouts": [8, 13], "lazily": 15, "lazy": [2, 4, 6], "lazy_tabl": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 12, "ldap_setting": 12, "ldap_settings": 12, "ldapplugin": 12, "lead": [13, 15], "learn": [1, 6], "least": [1, 2, 11, 14, 15], "leav": [5, 6], "left": [8, 11, 13, 15], "legacy": 6, "leg\u00edvel": 6, "leitur": 6, "lembr": [3, 6, 8, 11], "len": 15, "length": [6, 11], "ler": [1, 6], "less": [7, 11, 14], "let": [7, 11, 15], "lets": 2, "letters": 11, "letting": 6, "lev": [6, 9], "levant": 6, "level": [2, 6, 7, 11, 12], "leverag": 0, "li": [8, 11, 12, 15], "lib": 2, "libldap2": 12, "librari": 12, "library": [2, 6, 10, 11, 14, 15], "libs": [8, 9, 13], "libsasl2": 12, "libsass": 4, "licens": 1, "lid": [1, 4, 5, 6, 13], "lifespan": 11, "lifetim": 5, "lig": [2, 5, 6, 9], "liga\u00e7\u00e3": [4, 5, 6], "liga\u00e7\u00f5": [6, 9], "light": 14, "lik": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "limit": [5, 6, 7, 11, 12], "limitation": 8, "limited": [0, 2, 5, 14, 15], "limiting": 15, "limits": 11, "limp": 1, "lin": [2, 4, 5, 7, 8, 9, 11, 12, 13, 15], "linguag": [0, 4, 5, 16], "linguagens": 4, "linh": [5, 6, 8, 9, 13, 16], "link": [4, 7, 8, 9, 11, 12, 13], "linked": 7, "links": [2, 6, 13, 15], "linting": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 15], "list_of_fields": 6, "listabl": 6, "listagens": 9, "listed": [5, 11, 15], "listening": 3, "listproperty": 6, "lists": [6, 13], "liststringproperty": 6, "listwidget": 11, "littl": [1, 5, 6], "livr": [1, 6], "lix": 6, "ll": [1, 2, 3, 5, 6, 8, 11, 13, 15], "lo": [1, 2, 3, 4, 6, 7, 8, 9], "load": [3, 5, 15], "loaded": [4, 8, 13, 15], "loading": 15, "loads": [6, 15], "loazkjy": 8, "loc": 5, "local": [3, 5, 8, 11, 12, 13], "localhost": [2, 4, 5, 6, 11], "localiz": 4, "locally": 2, "locals": [5, 14], "locat": 14, "location": [2, 4, 6, 8, 14], "locked": 6, "locking": 5, "log": [0, 2, 4, 5, 6, 8, 9, 12, 14, 15], "logerrors": 5, "logfil": 6, "logged": [5, 8, 12, 14], "logging": [2, 12], "logging_level": 2, "logic": [2, 5, 6, 12, 14], "logical": 11, "login": [0, 2, 3, 4, 5, 6, 8, 11, 12, 14], "logout": [0, 8, 12], "logs": [2, 5, 6], "loj": 6, "long": [0, 2, 6, 11], "longtext": 6, "look": [5, 6, 7, 11, 12], "looking": 3, "looks": [2, 6, 11], "lookup": [5, 7], "lookups": 11, "loop": [6, 8], "looping": 6, "los": [2, 4, 6, 11], "lost": [5, 14], "lot": [4, 6], "lots": 1, "loved": 0, "low": [0, 11], "lowercas": 11, "lowest": 11, "lru": 5, "lt": 9, "lts": 2, "luc": [0, 1], "lug": [1, 5, 6], "lumin\u00e1r": 4, "l\u00e1": [2, 4], "l\u00edngu": 1, "m": [0, 2, 6, 9, 11], "mac": [2, 6], "macac": 5, "macneiln": 2, "mad": [8, 11, 13], "magically": 0, "mai": 5, "mail": [2, 3, 5, 11, 12], "mailing": 6, "mailt": 11, "main": [1, 2, 3, 4, 6, 8, 13, 14, 15], "maintain": [6, 8, 15], "maintainability": 6, "maintainabl": 13, "maintenanc": 15, "maior": [6, 7], "mai\u00fascul": 6, "major": 6, "mak": [0, 1, 2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "makefil": 2, "making": [6, 8], "man": 15, "manag": [2, 3, 4, 5, 6, 12], "managed": 0, "management": 11, "managing": 6, "mandatory": [5, 8], "maneir": [5, 6, 13], "manipul": 6, "manipulat": 11, "manipulated": 11, "mann": 14, "manual": [2, 3, 4, 6], "manually": [2, 4, 6, 9, 12, 13], "many": [0, 1, 2, 4, 5, 7, 8, 11, 13, 14, 15], "map": [4, 6, 9, 10], "map_non": 6, "mapping": [2, 6, 11, 14], "maps": [6, 9], "marc": [1, 6, 9, 12], "marca\u00e7\u00e3": 9, "margin": [8, 15], "marked": 6, "marvel": 11, "massim": [0, 6], "mast": [1, 2, 13], "match": [2, 5, 6, 8, 9, 10, 11], "matched": [4, 7, 9, 11], "matching": [7, 9, 11], "matem\u00e1t": 6, "material": 6, "math": 15, "matriz": 9, "matters": 14, "max": [10, 11, 15], "maximum": [5, 11], "maxip": 11, "maxlen": 11, "maxsiz": 11, "may": [2, 4, 5, 6, 8, 9, 11, 14, 15], "md": 1, "md5": 11, "mean": 14, "meaning": [6, 11, 12], "meanings": 11, "means": [1, 2, 3, 5, 6, 8, 11, 12, 14], "mecan": [5, 6, 8], "mechanism": [0, 6, 8, 9, 12, 14], "med": 1, "mediant": 8, "mei": 6, "melhor": [0, 1, 6, 10, 13, 16], "memb": [11, 12], "membership": [0, 5, 11, 12, 14], "memberships": 5, "membr": 12, "memcach": [0, 6], "memoiz": 16, "memory": [5, 6], "men": [1, 2, 5, 6], "menor": 6, "mensag": 13, "mensagens": [5, 6], "ment": 1, "mention": 5, "mentioned": [12, 15], "menu": [8, 11, 12], "menus": [8, 11], "mes": [6, 9], "mescl": 6, "mesm": [0, 1, 2, 4, 5, 8, 9, 10, 13], "messag": [2, 4, 5, 7, 8, 11, 13, 14, 15], "messed": 1, "mestr": 6, "met": [6, 8, 9], "metad": 6, "metadat": 6, "metatag": 9, "method": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "methods": [5, 7, 9, 11, 12, 13, 16], "mfa": 12, "micah": 0, "microsoft": [1, 12], "mid": 6, "middlewar": 5, "might": [7, 11], "migr": 6, "migrate_enabled": 6, "migrated": 6, "migrating": [6, 14], "migration": 6, "migrations": 6, "migra\u00e7\u00f5": 16, "min": [8, 11, 13], "min_length": 11, "mind": [4, 6, 7, 8, 11], "mindful": 6, "minimal": [5, 13, 16], "minimalist": [8, 14], "minimalist_pag": 8, "minimum": 11, "minip": 11, "minor": [8, 14], "minsiz": 11, "minut": 11, "min\u00fascul": 6, "missing": [2, 12, 13], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 11, 13], "mm": 11, "mobili\u00e1ri": 5, "mod": [2, 4, 5, 6, 11, 12], "model": [0, 3, 7, 9, 14, 15], "models": [4, 6, 7, 13, 14], "modern": [6, 12, 15], "modifi": 13, "modific": [2, 4], "modifications": 2, "modified": [4, 11, 14], "modified_by": 6, "modified_on": 6, "modifiers": 7, "modify": [11, 13, 15], "modifying": [2, 8], "modindex": 16, "modul": [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], "moment": [2, 6], "mong": 6, "mongodb": 6, "mongodbadapt": 6, "monoespac": 9, "monolithic": 0, "mont": 12, "month": 11, "mor": [0, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "moreov": 15, "most": [0, 4, 5, 6, 11, 12, 13, 14, 15], "mostr": [1, 4, 6, 13], "moth": 6, "mother_id": 6, "motor": 6, "mov": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 5, 6, 8, 11, 13, 14, 15], "mud": [4, 5, 6], "mudanc": 6, "muit": [0, 1, 4, 5], "mult": [1, 2, 6, 14], "multicast": 11, "multipl": [1, 2, 6, 8, 9, 11, 14, 15, 16], "multiprocess": 5, "multiselect": 11, "multius": 12, "must": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 14], "my": [5, 8, 9, 11, 12, 15], "my_app": 4, "my_id": 15, "my_password_fil": 2, "my_url_path": 14, "my_var": [5, 9], "myapp": [2, 4], "myclass": 9, "mycomponent": 15, "mycustomwidget": 11, "mydb": 6, "myerrors": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunction": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myord": 6, "myquery": 6, "myrecord": 6, "mysaltvalu": 11, "myset": 6, "mysideb": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyle": 11, "mytabl": 6, "myvalu": 6, "myvirtualfields": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "m\u00e1quin": [6, 9], "m\u00e1x": 6, "m\u00e1xim": 6, "m\u00e9d": 6, "m\u00e9di": 12, "m\u00e9tod": [4, 5, 6, 8, 13], "m\u00ednim": [5, 6], "m\u00f3dul": [0, 2, 5, 6], "m\u00faltipl": [0, 6], "n": [5, 6, 10, 15], "nad": [2, 4, 6], "nam": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "named": 9, "nameonly": 6, "naming": 6, "nasc": 6, "natal": 6, "nativ": 6, "native_json": 11, "nav": 8, "navb": [8, 12], "naveg": 13, "navigat": 15, "navigation": [8, 15], "ndb": 6, "ne6fz": 8, "necess": [1, 2, 4, 5, 6, 8], "necessary": [6, 8, 9], "necessit": 6, "necess\u00e1r": [1, 5, 6], "necess\u00e1ri": [2, 4, 5, 6], "need": [0, 1, 2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "needed": [2, 4, 5, 6, 9, 11, 12, 15], "needs": [0, 4, 5, 6, 12, 14, 15], "neg": 6, "negated": 6, "negativ": [6, 11], "nega\u00e7\u00e3": 6, "neith": 11, "nel": 6, "nenhum": [6, 12], "ness": 6, "nest": [1, 6, 8, 9], "nested": [6, 8], "nested_select": 6, "network": [11, 12], "networks": [11, 12], "nev": [6, 8, 11, 14, 15], "new": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "new_app": [8, 9], "new_password": 15, "new_sidec": 15, "newlin": [6, 11], "newly": 6, "next": [1, 5, 6, 8, 11], "nginx": 2, "nic": [0, 15], "nicozanf": 2, "nid": 6, "niss": 6, "no_backslash_escap": 6, "no_tabl": [11, 15], "nod": 4, "nom": [2, 4, 5, 7, 9, 11, 12, 13], "nomeaplic": 12, "non": [2, 4, 5, 6, 7, 9, 11, 13, 14, 15], "nor": [2, 11], "norm": 6, "normal": [4, 5, 6, 8, 11, 13, 15], "normaliz": 6, "normalized": 6, "normally": [2, 6, 8, 9, 11, 13], "northwind": 1, "nosqladapt": 6, "noss": [1, 4, 5, 6], "not": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "not_accepted": 11, "not_authorized": 12, "notation": 9, "nota\u00e7\u00e3": [6, 9], "noted": 8, "nothing": [2, 5, 6, 11, 15], "notic": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "notnull": 6, "notset": 2, "nov": [0, 1, 2, 3, 4, 13], "novaaplicaca": 4, "now": [0, 4, 5, 6, 11, 13, 15], "nowadays": 1, "nul": 6, "null": [6, 7, 11, 15], "numb": [2, 5, 6, 8, 11], "number_workers": 2, "numbers": 11, "numerical": 11, "num\u00e9r": 6, "nunc": [5, 6], "n\u00e3": [0, 1, 2, 3, 4, 5, 6, 8, 9, 12, 13], "n\u00edvel": [6, 10], "n\u00famer": [4, 6, 10, 13], "oauth": 12, "oauth2": [0, 5], "oauth2discord": 12, "oauth2facebook": 12, "oauth2googl": 12, "obj": [6, 8], "object": [0, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16], "objects": [0, 4, 5, 6, 9, 11, 13, 14, 15], "objet": [0, 5, 6, 8, 9, 10], "obras": 6, "obrigat\u00f3ri": 6, "observ": [4, 6, 8], "obsolet": 6, "obtain": [2, 12, 15], "obtained": 6, "obter": [4, 6], "obtid": [2, 6], "obvi": 6, "obvious": [7, 8, 12], "obviously": 11, "ocasional": 6, "occasionally": 11, "occur": [2, 11, 15], "occurring": 2, "occurs": 11, "ocorr": [4, 6, 8], "ocult": [6, 11], "odd": [6, 8], "of": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "off": [0, 2, 4, 13, 15], "official": [0, 11, 15], "offs": 6, "offset": [6, 7], "oficial": 6, "often": [6, 12, 15], "ok": [9, 14], "old": [2, 5, 11, 14], "older": 11, "olhand": 6, "ol\u00e1": 8, "ombott": [0, 4, 14], "omit": 2, "omitted": 2, "on": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15], "on_delete_action": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "once": [1, 2, 5, 6, 11, 12, 15], "onclick": 15, "onde": [2, 6, 7, 8, 11], "ondelet": 6, "one": [0, 2, 4, 5, 6, 7, 8, 11, 12, 13, 15], "ones": [2, 7, 11, 14], "onion": 5, "onkeydown": 15, "onlin": [1, 6], "onload": 15, "only": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "onvalidation": 11, "opacity": 15, "opcion": [6, 9], "opcional": [4, 6, 9, 11], "open": [1, 2, 4, 5, 6, 9], "opening": 5, "oper": [0, 3, 10, 16], "operat": 11, "operation": [6, 12], "operationalerror": 11, "operations": [5, 6], "operator": [5, 6, 11], "oposi\u00e7\u00e3": 9, "opost": 6, "opposit": 5, "oprow": 6, "optimized": 6, "option": [2, 3, 5, 6, 11, 12, 15], "optional": [2, 5, 6, 7, 8, 11, 12, 13, 14], "optionally": [0, 2], "options": [2, 6, 7, 9, 12, 14, 15], "opt\u00e1m": 6, "op\u00e7\u00e3": [3, 4, 6, 8, 9], "op\u00e7\u00f5": [6, 16], "or": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "oracl": 6, "oracleadapt": 6, "ordem": 6, "order": [1, 2, 4, 5, 6, 7, 9, 11, 13, 14], "order_it": 6, "orderby": [11, 12, 13, 15], "ordered": 9, "ordereddict": 6, "org": [2, 4, 7, 9, 15], "organiz": 6, "organized": 4, "orig": [2, 10], "origin": 6, "original": [6, 8, 9, 11], "other": [0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15], "other_pag": 15, "otherfield": 6, "others": [0, 6, 14], "othertabl": 6, "otherwis": [5, 6, 8, 11, 12, 13], "otimiz": 6, "oufil": 6, "our": [0, 1, 2, 5, 6, 9, 11, 15], "out": [0, 1, 2, 5, 8, 11, 15], "outlined": [4, 5], "output": [1, 2, 5, 8, 11, 15], "output_styl": 4, "outr": [1, 2, 4, 5, 9, 10, 12, 13, 16], "outsid": [0, 5, 6, 11, 13, 14, 15], "ov": 6, "over": [8, 13, 15], "overkill": 12, "overrid": [4, 6, 8, 12, 13, 14, 15], "override_cl": 13, "override_styl": 13, "overriding": 15, "overview": 16, "overwritten": [5, 14], "own": [4, 5, 6, 8, 11, 12, 13, 14, 15], "owner": [6, 11], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "owners": 11, "ownership": 6, "owns": 6, "p": [2, 8, 11], "p10n": 10, "packag": [0, 6, 9], "padded": [8, 14], "padding": 15, "padroniz": 6, "padr\u00e3": [0, 2, 4, 5, 8, 9, 13], "padr\u00f5": [4, 6, 9], "pag": [1, 3, 4, 5, 6, 9, 11, 12, 13, 14, 15, 16], "page_head": 8, "page_left_menu": 8, "page_scripts": 8, "pagin": [6, 13], "pai": 6, "painel": [0, 2, 3], "paint": [4, 11], "painting": 4, "pairs": 9, "palavr": [8, 9, 10], "pam": [0, 5], "pam_plugin": 12, "pamplugin": 12, "papel": 2, "par": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 15, 16], "paragraph": [5, 9, 11, 13], "paramet": [1, 2, 4, 5, 6, 12, 13, 15], "parameters": [2, 6], "params": 15, "parec": [5, 6], "parent": [2, 6, 8, 15], "park": [7, 13], "pars": [5, 6, 11, 12], "parsed": 6, "parsemodul": 4, "part": [4, 9, 14], "partial": [4, 6, 14], "particip": 6, "participat": 1, "particul": [0, 1, 6, 11, 13, 14, 15], "particular": 6, "particularly": 6, "parts": 11, "party": [0, 5], "par\u00e1graf": [1, 9], "par\u00e2metr": [5, 13], "par\u00eantes": 6, "pass": [4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "passed": [2, 4, 5, 6, 9, 11, 12, 13, 15], "passing": [5, 6, 9], "passphras": 5, "password": [2, 6, 8, 11, 12, 14, 15], "password_fil": 2, "passwords": 11, "passwordwidget": 11, "past": [2, 4], "path": [2, 4, 5, 6, 7, 10, 11, 13, 14, 15], "path_t": 2, "pattern": 7, "patterns": 7, "paus": 2, "payment": 6, "payroll": 5, "pbkdf2": 11, "pc": 3, "pdf": [1, 11], "pdkdf2": 2, "pec": [5, 6], "ped": [2, 4, 5, 6, 13], "pedac": 8, "peg": 6, "pegadinh": 16, "pel": [1, 4, 5, 6, 8, 9, 10, 12], "pens": 6, "per": [5, 7], "percentual": 6, "perd": [1, 2, 6], "perfect": 0, "perfectly": 13, "perfil": [0, 12], "perform": [5, 6, 11, 12], "performanc": [0, 5, 6, 14], "performing": 6, "performs": 11, "pergunt": 6, "permanec": 6, "permission": [5, 12], "permissions": [0, 5, 6, 12, 14], "permiss\u00e3": [5, 6, 12], "permit": [0, 3, 5, 6, 8, 9, 12, 13], "permitted_tags": 9, "persist": 5, "persistent": [6, 12], "person": [6, 7, 11, 13], "personag": 6, "personagens": [4, 6], "personal": 2, "personaliz": [0, 2, 16], "persons": 11, "persons_and_things": 6, "perspectiv": 0, "pertenc": 6, "pertencent": 6, "pesquis": [2, 3, 6, 13], "pesso": 6, "pet": [6, 7, 13], "philip": 6, "phon": 11, "photograph": [7, 13], "physics": 12, "pick": [5, 12], "picked": 4, "picks": 5, "piec": [0, 11], "pierr": 0, "pip": [0, 1, 6], "pirsch": 0, "piscin": [4, 6], "piu": 5, "pixels": 11, "plac": [1, 5, 6, 8, 11, 13, 15], "placehold": [11, 15], "placeholders": 6, "placing": 13, "plan": [1, 15], "plataform": 16, "platform": [0, 1], "play": 15, "playing": 0, "pleas": [5, 6], "plug": 5, "plugin": [5, 11, 12, 13, 15], "plugins": [11, 15], "plural": 10, "pluraliz": [0, 4, 5, 13, 15, 16], "pluralization": 14, "plus": [8, 12, 13], "pm": 11, "png": [9, 11], "pod": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13], "point": [4, 5, 6, 11, 14, 15], "pointing": [2, 3, 8], "points": [6, 7, 11, 13], "polic": 16, "policy": 7, "pol\u00edt": 0, "pont": 6, "pool": 5, "pool_connection": 6, "pool_siz": [5, 6], "pooling": 6, "poor": 15, "pop": 15, "popul": [0, 6], "porqu": [2, 4, 5, 6, 8, 10], "port": [0, 2, 3, 5, 6, 14], "portability": 6, "portabl": 6, "portant": [2, 4, 5, 6, 9], "ports": 2, "por\u00e7\u00f5": 13, "posicion": 9, "position": 5, "positional": 9, "posi\u00e7\u00e3": [5, 9], "possibil": 6, "possibl": [4, 5, 6, 8, 11, 13, 14], "possibly": 6, "poss\u00edv": 6, "poss\u00edvel": [4, 6], "post": [4, 6, 7, 9, 11, 12, 13, 14, 15], "post_action_buttons": 13, "post_text": 6, "post_vars": [7, 14], "post_writabl": 7, "posted": 7, "postel": 10, "posterior": 5, "postfix": 14, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyc": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserved": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocessing": 14, "posts": 6, "potentially": 2, "pouc": [5, 6], "pow": [2, 6, 15], "powerful": [7, 12, 14], "powers": 7, "pprint": 6, "pr": 1, "practic": [8, 11], "practical": [6, 11, 14, 16], "pre": [2, 4, 5, 13], "pre_action_buttons": 13, "precau\u00e7\u00e3": 2, "preced": [5, 6, 8], "preceded": [6, 11], "precedent": 6, "preceding": 7, "precious": 13, "precis": [1, 2, 4, 5, 6, 13], "predefin": 8, "predetermined": 14, "preench": 6, "preenchiment": 6, "pref": [2, 15], "prefer": 9, "preferenc": 5, "preferred": [5, 6], "prefix": [2, 4, 6, 7, 8, 11, 14], "preguic": 14, "prelimin": 1, "preocup": 6, "prepend": [11, 15], "prepend_schem": 11, "prepended": [11, 14], "prepending": 11, "prepends": 4, "preprocessing": 14, "prerequisit": [2, 5], "presenc": [5, 6], "present": [2, 6, 8, 11, 12], "preserv": [0, 5], "preserved": 5, "press": [4, 13], "pression": 3, "prest": 9, "pretend": 6, "pretty": [6, 11, 14], "prevent": [6, 9, 11], "prevented": 6, "preventing": 5, "prevents": [2, 5, 15], "previ": [6, 11], "previous": [5, 8, 9, 11, 15], "previously": [5, 6, 11], "prim": [5, 11], "primarily": 13, "primary": [6, 8, 12], "primeir": [6, 8, 12, 16], "princip": 0, "principal": [1, 5, 6, 16], "princ\u00edpi": [6, 16], "print": [4, 6, 9, 10, 12, 14], "printed": 4, "privat": [5, 11], "probability": 11, "probl": [0, 6, 8, 13], "problem": [1, 6], "problems": [6, 12, 15], "proc": 12, "proced": 16, "procedur": 2, "process": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "processed": [5, 6, 8, 11], "processing": [5, 6, 8, 11, 15], "procur": [1, 6], "produc": [6, 9, 11, 12], "product": [6, 11, 15], "product_nam": 11, "product_quantity": 11, "product_record": 15, "production": [2, 4], "products": 6, "produz": [2, 5, 6, 8, 9], "produ\u00e7\u00e3": 0, "professor": 12, "profil": [8, 12, 14], "progr": [1, 2, 3, 9], "program": [1, 3, 6, 8], "programmatically": [9, 11], "programming": [1, 6, 8, 15], "programs": [1, 2, 11], "project": [0, 2, 4, 5, 6], "project_nam": 2, "projet": [0, 2], "prompt": [2, 4, 6], "pront": 6, "prop": [5, 6, 13], "properly": 4, "properti": [6, 11], "propriedad": 6, "propriet\u00e1r": 6, "propriet\u00e1ri": 6, "protocol": 3, "prototyp": 15, "prototyping": 11, "provavel": [4, 5, 6], "proveit": 6, "provid": [0, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "provided": [5, 6, 8, 9, 11, 13], "providing": [0, 13, 14], "provoc": 6, "prudent": 6, "pr\u00e1tic": [0, 6, 7], "pr\u00e9": [9, 13, 16], "pr\u00f3pr": [12, 13], "pr\u00f3pri": [6, 13], "pr\u00f3xim": [2, 6], "pseud": 6, "psycopg2": 6, "public": 4, "pud": 2, "pull": 1, "punycod": 11, "pur": 6, "purpos": [0, 6, 9, 11, 12, 14], "put": [5, 7, 11, 15], "put_writabl": 7, "putting": 4, "pux": 6, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15], "py4web": [2, 3, 4, 5, 7, 8, 9, 11, 12, 13], "py4web_filesyst": 6, "py4web_wsg": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15], "pyfilesyst": 6, "pyinstall": 2, "pymong": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytds": 6, "python": [0, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15], "python2": [2, 14], "python3": [1, 2], "pyweb": 14, "p\u00e1gin": [8, 9, 13, 16], "p\u00f3s": 13, "p\u00fablic": 6, "q": [2, 6, 13], "qua": [0, 6], "quadr": [0, 1, 6], "quaisqu": [6, 11], "qualified": 6, "qualqu": [1, 2, 4, 5, 6, 7, 8, 12], "quand": [1, 4, 6, 8, 13], "quant": 6, "quantity": [6, 11], "quebr": 0, "qued": 13, "queir": 5, "quer": [2, 4, 5, 6, 9], "queri": [6, 7, 13, 14, 15], "queried": 7, "query": [4, 5, 7, 9, 11, 13, 14, 15], "query1": 6, "query2": 6, "queryselector": 15, "queryselectorall": 15, "querystring": 13, "questions": [1, 2], "quest\u00e3": 6, "quick": [1, 11], "quickly": [2, 11, 13], "quiet": 2, "quirk": 5, "quis": [4, 6], "quit": [1, 2, 5, 7, 8, 11, 13], "quot": [2, 9], "quote_minimal": 6, "quote_nonnumeric": 6, "quotech": 6, "r": [2, 6, 11], "rac": 11, "radi": [9, 11], "radiowidget": 11, "radius": 15, "rais": [5, 11, 12, 14], "raised": 5, "ram": [5, 6], "randint": [8, 12], "random": [6, 8, 11, 12, 15], "rang": [4, 6, 8, 12, 14], "rapid": [0, 11, 15], "rar": 6, "rarely": 6, "rath": [6, 8, 11, 15], "raw": 16, "raz\u00f5": 6, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "rea": 6, "reach": 2, "react": 15, "reactivity": 15, "read": [1, 4, 5, 6, 7, 13, 15], "readability": 7, "readabl": [5, 6, 13, 14], "readm": [1, 11], "readonly": [2, 11, 15], "ready": 2, "reagrup": 0, "real": [2, 4, 7, 8, 11], "real_identity": [6, 7], "realiz": [3, 4, 5, 6], "really": [1, 4], "realment": 6, "realnam": 11, "reaping": 15, "reason": [2, 5, 6, 13, 14], "reasons": 7, "rebuilt": 6, "rec_id": 7, "receb": [6, 8], "recent": [2, 3, 6, 11, 13], "recently": 5, "recereived": 15, "recip": 2, "reclam": 6, "recogniz": 4, "recognized": 6, "recolh": [7, 13], "recomec": 6, "recomend": 6, "recommend": [1, 5], "recommended": [6, 11], "reconstru": 6, "record": [7, 11, 12, 14, 15], "record_id": [7, 15], "records": [6, 7, 11, 12, 13], "recorrent": 6, "recup": 6, "recuper": [4, 6], "recurs": [2, 8, 16], "recursively": 8, "recycl": 6, "rec\u00e9m": [4, 6, 10], "red": [0, 3, 4, 6, 8, 9, 11, 16], "redefini\u00e7\u00e3": 6, "redesign": 0, "redirecion": [4, 12, 13], "redirect": [4, 5, 11, 12, 13, 15], "redirected": [5, 15], "redirection": [5, 14], "redirects": [5, 12], "reduc": [0, 15], "reduced": 0, "redundancy": 11, "redundant": 6, "reduz": 5, "reescrev": 6, "reescrit": 6, "ref": [3, 5, 6, 9, 11, 16], "refer": [6, 7], "referenc": [1, 6, 7, 8, 9, 11, 13], "referenced": [6, 7], "referenced_by": 7, "referencing": 6, "referim": 6, "referred": [6, 7], "refers": 7, "reflected": 1, "reflet": 6, "reforc": 6, "refresh": 13, "regex": [7, 9, 11], "regexlib": 11, "regist": [0, 5, 6, 8, 12, 13, 14], "register_plugin": 12, "register_vue_component": 15, "registered": [5, 12], "registers": 5, "registr": [3, 4, 11, 12, 13], "registration": [4, 11], "registration_stamp": 11, "regr": [4, 5], "regul": [0, 2, 4, 6, 7, 8, 10, 11, 13, 14, 15], "reimplementation": 15, "reinic": 6, "reinstal": 2, "reinstall": 2, "reinstat": 6, "rejected": 11, "rejects": 11, "rel": [8, 13], "relacion": 6, "relat": 6, "related": [5, 6], "relational": 6, "relations": 16, "relationships": 6, "relativ": [4, 14], "rela\u00e7\u00e3": 9, "rela\u00e7\u00f5": 6, "releas": 2, "released": 0, "relev": 6, "reload": [2, 3, 4, 5, 11], "reloaded": [3, 4, 15], "reloading": [2, 4, 5], "reloads": [4, 5], "rely": [0, 4, 6], "rem": 5, "remain": [6, 11], "remains": 0, "rememb": [5, 6], "remembered": 5, "remote_addr": [5, 12], "remov": [2, 4, 6, 9, 11, 12], "removal": 11, "removed": [0, 6, 9, 11], "removing": 6, "remo\u00e7\u00e3": 6, "renam": 1, "rend": [5, 6, 11, 13, 14, 15], "rendered": [5, 7, 8, 11, 13, 14, 15], "rendering": [8, 9], "renderiz": 9, "renders": 11, "reno": 8, "renom": 7, "reopening": 5, "repackaging": 0, "repeated": 11, "repeti\u00e7\u00e3": 6, "replac": [6, 8, 9, 13, 15], "replaced": [8, 9, 11, 15], "replicat": [1, 5], "report": 8, "reported": 4, "repository": [1, 2, 3], "reposit\u00f3ri": 2, "repr_row": 6, "represent": [8, 9, 11], "representation": [6, 9], "representational_state_transf": 7, "represented": 11, "representing_field": 11, "represents": [0, 6], "requ": [0, 5, 6, 11, 12, 13, 14, 15], "request": [0, 1, 2, 5, 6, 7, 11, 12, 13, 14, 15], "request_reset_password": 12, "requests": [1, 4, 5, 14], "requir": [2, 5, 6, 11, 12], "required": [4, 5, 6, 7, 11, 15], "required_fold": 11, "requirement": 11, "requirements": [0, 2, 11], "requires_": 14, "requires_login": 14, "requires_membership": 5, "requiring": [2, 14], "requisit": [6, 16], "res": 15, "reserv": 10, "reserved": [6, 11], "reset": 6, "reset_password": 12, "resgat": 6, "resourc": [6, 12], "respect": [6, 11, 13], "respectively": [6, 11], "respons": [4, 5, 6, 8, 14, 15, 16], "responsibility": 6, "responsibl": 13, "respost": [5, 8], "ressalv": 6, "restabelec": 6, "restap": [0, 3, 16], "restart": [2, 4, 5, 6, 13], "restaur": 6, "restful": [7, 12], "restrict": [5, 7, 11, 15], "restri\u00e7\u00e3": 6, "restri\u00e7\u00f5": [0, 6], "restructuredtext": 1, "result": [1, 4, 6, 7, 8, 11, 13, 15], "resulting": [8, 11, 15], "results": [6, 8, 11, 13], "ret": 6, "retain": 6, "retorn": [5, 8, 9], "retribu": 9, "retriev": [5, 6, 15], "retrieval": 6, "retrieved": 14, "return": [4, 5, 6, 7, 9, 11, 12, 13, 15], "returned": [5, 6, 7, 8, 9, 11, 15], "returning": 5, "returns": [5, 6, 7, 9, 11, 12, 14, 15], "reutiliz": [2, 6], "revers": [5, 6], "revers\u00e3": 4, "revert": 6, "rfc": 11, "rid": 6, "riding": 8, "right": [5, 6, 8], "rights": 2, "road": 15, "rocket": 14, "rocket3": [2, 14], "rocketserv": 2, "rodap": 9, "rol": [5, 9], "roll": 6, "rolls": 5, "root": [6, 8, 12, 13], "rosc": 5, "rot": [3, 13], "rotul": 6, "rout": [2, 5, 13, 14, 15], "routing": [0, 2, 4, 14], "rov": 6, "row": [11, 13, 15], "rows": [9, 11, 13, 14], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 13, "rpc": 6, "rst": 1, "rul": [8, 11, 13], "run": [1, 3, 4, 6, 8, 12], "run_in_transaction": 6, "running": [1, 2, 5], "runs": [2, 4, 12, 14], "r\u00e1di": 9, "r\u00e1p": [0, 6], "r\u00f3tul": [6, 9, 13], "s": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15], "s3": 6, "s_": [11, 15], "s_autocomplet": 15, "s_autocomplete_results": 15, "s_down_key": 15, "s_search": 15, "sab": [1, 2, 6, 8], "saf": [1, 6, 11, 13, 14], "safar": 15, "safely": [1, 13], "said": 7, "sair": 12, "sak": 6, "salt": [1, 11], "salv": [4, 6, 10], "sam": [0, 2, 5, 6, 7, 8, 11, 12, 14, 15], "same_sit": 5, "saml": 12, "saml2": 0, "sampl": 12, "san": 4, "sandbox": 15, "sanitiz": [5, 9, 14], "sant": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "sav": [1, 5, 6, 10, 11], "saved": [2, 5, 6, 11], "say": 12, "sa\u00edd": [2, 4, 6, 8, 9], "scaffold": [2, 4, 15], "scaffold_zip": 2, "scaffolding": [2, 4, 5, 6, 8, 14, 15], "scal": [5, 8], "scan": 6, "schaf": 1, "schem": [6, 11], "school": 12, "scor": 15, "score_input": 15, "scratch": 4, "script": [2, 5, 8, 15], "scripting": 9, "scripts": [2, 8, 9], "sdk": 2, "seamlessly": 8, "search": [0, 6, 11, 12, 13, 16], "search_button_text": 13, "search_form": 13, "search_queri": 13, "search_text": 13, "search_valu": 15, "searchabl": 6, "searched": [9, 13], "searching": [6, 9], "second": [6, 9, 11, 12, 14], "seconds": [5, 11], "secret": [5, 12], "section": [2, 4, 6, 8, 11, 12], "sections": 6, "secur": [0, 11], "securely": 2, "security": [0, 7, 12], "see": [0, 1, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "seem": 6, "seen": [0, 5, 7, 9, 11, 13, 15], "seg": 4, "segment": 4, "segred": 12, "segu": [2, 4, 5, 6, 8], "seguint": [2, 4, 5, 6, 8, 9, 10, 11, 12, 13], "segund": 6, "segur": [0, 5], "seguranc": [2, 5, 6, 9], "seis": 6, "sej": [4, 6], "seleccion": 6, "selecion": [3, 6], "select": [4, 7, 10, 11, 12, 13, 14, 15, 16], "selected": [3, 4, 7, 9, 11, 15], "selected_elements": 15, "selectedindex": 15, "selecting": 6, "selection": 11, "selections": 11, "selector": [9, 15], "selector1": 9, "selector2": 9, "selectorn": 9, "selectwidget": 11, "selec\u00e7\u00e3": 6, "sele\u00e7\u00e3": [6, 9], "self": [2, 5, 6, 9, 11, 13, 15], "semantic": [11, 12], "semelh": [0, 4, 5, 6, 9], "sempr": [6, 8], "send": [2, 6, 11, 12], "send_two_factor_email": 12, "sends": 12, "senh": [0, 2, 3, 5, 6, 12], "sens": [0, 11], "sensitiv": [5, 11], "sens\u00edvel": 6, "sent": [5, 6, 12, 15], "sen\u00e3": 6, "separ": [6, 13], "separat": [6, 11, 12, 15], "separated": [2, 5, 6, 13, 15], "separating": [8, 11], "separator": 11, "sequenc": [5, 6], "sequencial": 6, "sequ\u00eanc": 6, "seq\u00fcenc": 6, "seq\u00fc\u00eanc": 6, "ser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "seri": 1, "serializ": [4, 6, 8, 9], "serializabl": [0, 5, 6], "serialized": [5, 6, 9, 11], "serv": [0, 2, 3, 4, 7, 8, 12, 14, 15, 16], "served": [2, 6], "server_addr": 6, "servers": [2, 6], "serversid": 15, "servidor": [0, 4, 5, 6], "serving": 15, "ser\u00e3": [4, 6, 9], "session": [0, 2, 4, 6, 9, 11, 12, 13, 14, 15, 16], "session_app1": 5, "session_secret_key": 5, "sessions": [0, 6, 14], "sess\u00e3": [4, 16], "sess\u00f5": 5, "set": [0, 2, 5, 7, 8, 9, 10, 13, 14, 15], "set_attribut": 6, "set_encoding": 6, "set_head": 6, "set_password": 3, "setinterval": 15, "sets": [2, 5, 6, 11], "setting": [2, 4, 5, 6, 11, 13], "settings": [1, 4, 5, 6, 9, 12, 14], "setup": [1, 3, 4, 12, 15], "setvirtualfields": 6, "severity": 6, "se\u00e7\u00e3": 6, "se\u00e7\u00f5": 6, "sf": 15, "sftp": 6, "sh": 15, "sha512": [8, 11], "shar": [5, 6, 14], "shared": 5, "shell": 9, "ships": 8, "sho": 6, "shopping": 5, "short": 11, "shortcut": [6, 8, 11], "should": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "show": [2, 5, 6], "show_id": 13, "showed": 12, "showing": 13, "shown": [2, 6, 11, 12], "shows": [4, 8, 11, 12], "shutil": 6, "si": [6, 13], "sid": [6, 15, 16], "sideb": 8, "sidebar_enabled": 8, "sidebar_menu": 9, "sidec": 15, "sign": [5, 8, 12], "signatur": [5, 6, 7, 9, 11], "signed": [2, 5, 11], "signed_url": 5, "signif": [5, 6, 7], "signific": [6, 8], "significant": 8, "signing": 5, "signing_inf": 11, "signs": 5, "sim": 6, "simbol": 2, "simb\u00f3l": 4, "simil": [0, 11, 14], "similar": [6, 9], "similariti": 14, "simpl": [1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 15, 16], "simple_query": 15, "simples": [4, 6, 10], "simplest": 2, "simplicity": [6, 15], "simplific": 6, "simplified": [0, 4, 8], "simply": [2, 4, 5, 6, 8, 15], "simultan": 6, "simult\u00e2n": 6, "sinal": 6, "sinc": [0, 4, 5, 7, 8, 11, 13, 14], "singl": [2, 5, 6, 7, 8, 11, 12, 13], "singleton": [5, 14], "sintax": [4, 6, 9, 12, 16], "sint\u00e1t": 5, "sistem": [0, 2, 5, 6], "sit": [1, 2, 4, 5, 6, 9, 13, 15], "situa\u00e7\u00e3": 6, "siz": [5, 8, 11], "skip": 15, "slash": [1, 4, 5, 12], "slick": 0, "slow": 6, "slug": 11, "small": [5, 11], "snippets": 6, "so": [2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "soap": 9, "sob": [4, 6], "sobr": [0, 8], "sobrecarg": 6, "sockets": 15, "solicit": [0, 6], "solt": 6, "solution": [0, 2, 15], "solu\u00e7\u00e3": [1, 6], "som": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 14], "some_condition": 8, "some_valu": 6, "somefield": 6, "somefil": 6, "soment": [2, 4, 6, 8], "somepath": 5, "sometabl": 6, "something": [6, 7, 8, 9, 11], "sometim": [6, 8, 9, 11], "somevalu": 6, "somewhat": 11, "somewher": 6, "soon": [8, 15], "sophisticated": 14, "sort": 11, "sorted": 13, "sorting": 11, "sourc": [1, 2, 3, 4, 6, 11], "source1": 11, "south": 1, "sp": 6, "spac": [6, 8, 11, 13], "span": [4, 14], "spatialit": 6, "speaking": 5, "special": [0, 5, 6, 8, 12, 14, 16], "specialization": 6, "specials": 11, "specific": [2, 5, 6, 8, 9, 11, 12, 14, 15], "specifically": [5, 6, 11, 15], "specifications": 7, "specified": [5, 6, 8, 9, 11, 12, 13, 14, 15], "specify": [2, 4, 5, 6, 7, 11, 12, 13], "specifying": 9, "speed": [7, 8], "sphinx": 1, "spiderman": [7, 13], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 11], "split_emails": 11, "sql": 16, "sql_mod": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 11, 14], "sqlforms": 11, "sqlit": [1, 5, 7, 11, 12, 13], "sqlite3": 6, "sqliteadapt": 6, "squar": 8, "src": [5, 6, 8, 9, 15], "ss": 11, "ssl": 2, "ssl_cert": 2, "ssl_key": 2, "sslcert": 6, "sslkey": 6, "sslmod": 6, "sslrootcert": 6, "sso_id": [5, 12], "stabl": 2, "stand": 11, "standard": [1, 2, 3, 6, 7, 12, 13, 14, 15, 16], "standards": [11, 13], "stands": 9, "start": [1, 2, 3, 4, 5, 6, 9, 11, 12, 13], "start_impersonating": 12, "started": 15, "starting": [2, 4, 6, 11], "starts": [0, 3, 5, 8, 14], "startup": [6, 14], "stat": [5, 7, 14, 15], "stated": 5, "stateful": 5, "stateless": [5, 15], "statement": 8, "statements": [8, 11], "static": [1, 4, 8, 9, 14], "static_dev": 4, "status": 7, "stderr": 2, "stdout": 2, "steil": [0, 1, 13], "step": [12, 14], "step1": 5, "step2": 5, "step3": 5, "step_completed": 5, "stepping": 15, "steps": 2, "still": [5, 6, 9, 11, 13, 14], "ston": 13, "stop": [2, 12], "stop_impersonating": 12, "stor": [5, 6, 12], "storag": [5, 6, 7, 11, 13], "stored": [0, 5, 6, 11, 12, 14, 15], "stored_it": 6, "stored_item_archiv": 6, "storing": 5, "story": 0, "str": [2, 5, 6, 9, 14, 15], "stre": [5, 6], "streaming": [4, 14], "strength": 7, "strict": 11, "strictly": [4, 15], "string": [4, 5, 6, 7, 9, 10, 11, 13], "stringi": 6, "stringlistproperty": 6, "strings": [9, 11, 13], "strip": 11, "stripped": [2, 14], "strong": [0, 9, 12], "strongly": [1, 5, 11, 13], "structur": [1, 4, 6, 12, 13, 14, 16], "stuck": 2, "students": 2, "studi": 1, "study": 1, "stuff": [11, 13], "style": [4, 6, 8, 11, 15, 16], "styles": 13, "stylesheet": [8, 13], "styling": 13, "sub": 6, "subcl": 6, "subclassing": 11, "subconjunt": [0, 6], "subfold": 6, "subfolders": [5, 6], "subheadings": 9, "subject": [6, 7, 12], "sublinh": 6, "submet": 11, "submission": [11, 15], "submit": [1, 5, 6, 9, 11, 13], "submitted": 15, "submitting": 12, "subm\u00f3dul": 0, "subnet": 11, "subnets": 11, "subpast": 4, "subqueri": 15, "subset": 11, "subse\u00e7\u00e3": 6, "substitu": [0, 2, 6, 8, 9], "substitui\u00e7\u00f5": 13, "substitutions": 8, "substitu\u00edd": 6, "substring": [6, 11], "succeeded": 0, "success": [5, 7, 15], "successful": [0, 12], "successfully": 12, "suced": 6, "sucess": [4, 6], "such": [6, 9, 11, 13, 14], "sud": [2, 12], "suffered": 0, "suffers": 12, "suficient": [6, 13], "suger": [1, 6], "sugest\u00f5": 16, "suggest": [1, 11], "sugiz": 0, "sup": 7, "super": 6, "superher": [6, 7, 11, 13, 15], "superhero": 7, "superior": 10, "superman": [6, 7, 11, 13], "superpotent": 7, "superpow": [6, 7], "superseeded": 6, "supond": [2, 6], "suponh": 6, "supor": 6, "suport": [0, 10, 16], "supplied": 9, "support": [1, 2, 6, 11, 14], "supported": [10, 11, 12], "supporting": 15, "supports": [4, 5, 8, 9, 11, 15], "suppress": 2, "suprim": 9, "sur": [5, 11, 12, 15], "surely": [3, 4], "surrounding": 11, "susan": 6, "sutil": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 11, "symbols": 11, "sync": [2, 6], "synops": 11, "syntactic": 11, "syntax": [0, 1, 4, 5, 6, 7, 8, 9, 11, 14, 15], "system": [0, 2, 5, 6, 9, 12, 15], "systems": 15, "sysus": 6, "s\u00e3": [0, 1, 3, 4, 5, 6, 8, 9, 10, 12, 13], "s\u00e9ri": 6, "t": [0, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14], "t_fold": 5, "tab": [3, 5, 11], "tabel": [5, 9, 12, 13, 14], "tabl": [5, 7, 11, 12, 13, 14, 15, 16], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 11, 15], "tag": [0, 6, 7, 8, 12, 14, 15], "tag_input": 15, "tagg": 9, "tagged_db": 12, "tagged_nam": 12, "tagging": [9, 12], "tags": [0, 5, 6, 8, 9, 14, 15, 16], "tags_input": 15, "tags_inputs": 15, "tail": 6, "tais": 6, "tak": [2, 3, 5, 6, 8, 11, 12, 13, 15], "taken": 11, "tal": 6, "talvez": [2, 5], "tamanh": 6, "tampering": [5, 6], "tant": [6, 15], "tantissim": 10, "tar": 11, "tard": [4, 6], "taref": [1, 5, 6, 12], "target": [9, 15], "tasks": 6, "tast": 6, "tbody": 6, "tcp": 3, "td": 6, "teach": 12, "technically": 15, "tecl": [6, 10], "tell": [4, 12, 15], "telling": [2, 12], "tells": [5, 15], "temp": [2, 8], "templat": [0, 4, 9, 11, 12, 14, 15, 16], "temporarily": 5, "tempor\u00e1ri": 6, "ten": 11, "tenancy": 6, "tenh": [1, 5, 6], "tent": [5, 6], "ter": [2, 4, 5, 6, 9], "teradat": 6, "teradataadapt": 6, "terceir": 6, "tered": 11, "term": 6, "termin": 9, "terminal": 4, "terminat": [8, 15], "terms": 11, "terr": 6, "ter\u00e3": 6, "test": [2, 6, 8, 9, 11, 13], "tested": [0, 2, 9, 12], "testing": [4, 6], "text": [2, 5, 6, 8, 9, 13, 15], "textar": 11, "textareawidget": 11, "textual": 9, "th": 6, "than": [0, 5, 6, 8, 9, 11, 12, 13, 15], "thank": 9, "thanks": 0, "that": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "that_templat": 8, "the": [0, 3, 8, 9, 10, 12, 14, 16], "thead": 6, "them": [0, 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14], "themselv": [6, 8], "then": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "ther": [1, 2, 5, 6, 8, 11, 12, 13, 14, 15], "therefor": [4, 5, 8, 11, 14], "thes": [2, 4, 5, 6, 8, 9, 11, 13, 15], "they": [2, 4, 5, 6, 7, 8, 11, 12, 14, 15], "thing": [5, 6, 14], "thing_tags_default": 6, "things": [2, 5, 6], "think": [5, 8, 13, 15], "third": [0, 5, 11], "this": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "this_templat": 8, "thisisatest": 9, "thisisthekey": 11, "thos": [5, 6, 8, 9, 12, 14, 15], "though": 8, "thought": [0, 6, 12], "thre": [0, 5, 6], "thread": [6, 14], "threaded": [2, 14], "threads": [5, 6], "threadsafevariabl": 5, "through": [2, 11], "throughout": 5, "thumbnail": 11, "ti": 5, "ticket": 6, "tickets_only": 2, "til": 6, "tim": [0, 4, 5, 6, 8, 13, 14, 15], "timed": 6, "timedelt": 11, "timeoffset": 9, "timeout": 5, "timestamp": [5, 7, 15], "tint": 4, "tip": [4, 13], "tips": [2, 13], "tir": 6, "titl": [8, 11, 15], "tiv": 6, "tmp": [5, 6], "to": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "tod": [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15], "today": [0, 11, 15], "togeth": [0, 8], "token": [5, 11], "tom": 6, "too": [2, 5, 6, 11, 15], "took": 6, "tool": 0, "tools": [6, 12, 15], "top": [8, 11, 12], "topics": [13, 16], "torn": [1, 2, 5, 6, 9, 13], "total": [1, 6, 7], "total_pric": 6, "touch": 8, "toy": 6, "tr": 6, "trabalh": [2, 4, 6, 7], "traceback": 6, "tracebacks": 5, "track": [1, 14], "trad": 6, "tradicion": 6, "tradicional": 6, "traditional": 2, "tradutor": 4, "traduz": [1, 6, 8, 10], "tradu\u00e7\u00e3": [5, 16], "tradu\u00e7\u00f5": [5, 10], "trailing": [2, 11], "training": 1, "transaction": [5, 6], "transactions": 6, "transa\u00e7\u00f5": 6, "transform": [4, 5, 6, 11, 15], "transformed": [5, 6], "transforms": 5, "transitions": 15, "translat": 15, "translated": [5, 8, 11], "translation": [11, 14], "translations": [5, 10, 15], "translator": [2, 10, 16], "transmit": 3, "transparent": [6, 8, 11], "transparently": 8, "trapped": 15, "trat": [4, 6], "tre": [8, 11], "treated": [6, 14], "tri": [6, 14], "trickery": 8, "tricks": 2, "tried": 0, "trigg": [6, 15], "triggers": 5, "trivial": [5, 6], "tru": [1, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "trunc": 6, "truncat": 6, "try": [2, 5, 6, 8, 11, 12], "trying": [1, 12], "tr\u00e1s": 6, "tr\u00eas": 6, "ttl": 5, "tud": [5, 6], "tupl": [6, 8, 9], "turn": [12, 13, 15], "turned": 0, "turns": [6, 15], "tutorial": [1, 2, 4, 13, 15], "tutorials": 1, "twic": [5, 6], "twitt": [0, 5, 12], "two": [1, 2, 4, 5, 6, 8, 11, 13, 14, 15], "two_factor": 12, "two_factor_filt": 12, "txt": [0, 2, 4, 6], "type": [2, 5, 7, 8, 9, 12, 15], "types": 11, "typical": [5, 6, 11], "typically": [4, 8], "t\u00eam": [2, 4, 6, 12], "t\u00edpic": 6, "t\u00edtul": [3, 9, 13], "t\u00f3pic": 6, "u": [2, 6, 9], "ubuntu": 12, "uc": 1, "ui": 12, "uid": 6, "ul": [8, 11, 12, 15], "un": [8, 9, 10, 15], "unauthenticated": [5, 6, 9], "unauthorized": 6, "unchanged": 11, "under": [2, 3, 4, 5, 6, 11], "underlying": 14, "underscor": [6, 9, 11], "understand": [0, 2, 4, 6, 7, 8], "understanding": 16, "undocumented": 15, "unfortunat": 6, "unfortunately": 13, "unicod": [6, 11], "unicodedecodeerror": 6, "unid": 6, "uniform": 6, "uniqu": [6, 7, 11], "unit_pric": 6, "unit\u00e1ri": 6, "univers": 11, "universal": [4, 6, 9], "uni\u00e3": 6, "unknown": 4, "unless": [3, 5, 6, 8, 11], "unlik": [0, 2, 7, 8, 14, 15], "unnamed": 6, "unneded": 2, "unordered": 9, "unpkg": 15, "unquoted": 9, "uns": 5, "unsaf": [5, 9], "untested": [2, 12], "until": [0, 5, 6, 8, 11], "un\u00e1ri": 6, "up": [1, 2, 5, 6, 8, 12, 15], "updat": [2, 5, 11, 13, 14, 15], "update_languag": 10, "update_naiv": 6, "updated": [5, 6, 11], "upgrad": [2, 6], "upgraded": 2, "upload": [4, 6], "upload_fold": [6, 11], "upload_help": 15, "uploaded": [6, 11, 14], "uploadfield": 6, "uploadfold": 6, "uploadfs": 6, "uploads": 6, "uploadseparat": 6, "upon": [2, 12, 14], "upper": [4, 5, 11], "upper_cas": 5, "uppercas": [5, 11], "uri": 12, "uris": 6, "url": [4, 5, 7, 8, 11, 12, 13, 14, 15], "url_prefix": 2, "url_sign": 5, "url_to_post_t": 15, "urls": [2, 11, 14], "urlsign": 16, "us": [2, 11], "usa": [0, 4, 5, 6, 8], "usabl": 13, "usad": [0, 4, 6, 9, 10, 12, 13], "usag": [2, 3, 4, 5, 6, 9, 11, 12, 13], "usam": 6, "usand": [4, 5, 8, 9, 12, 16], "usar": [2, 4, 5, 6, 8, 9, 13], "use": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "used": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "useful": [2, 4, 8, 9, 11, 13, 15], "usefull": 11, "useless": [11, 14], "user": [2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "user_email": 14, "user_id": [5, 6, 12, 14], "user_nam": 6, "user_outside_network": 12, "user_password": 6, "usernam": [5, 6, 12], "users": [0, 1, 4, 5, 12, 14], "uses": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "using": [0, 1, 3, 4, 6, 7, 11, 14, 16], "uso": [2, 5, 13], "usos": 6, "usou": [5, 6], "usr": 1, "usual": [2, 8, 9, 11], "usually": [1, 5, 7, 11], "usu\u00e1ri": [1, 2, 3, 4, 5, 6, 12, 14], "us\u00e1": [2, 6, 8], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "utility": [2, 11], "utiliz": [2, 3, 4, 5, 6, 9, 12, 13], "utilizing": 13, "utils": [2, 4, 5, 8, 9, 11, 12, 13, 14, 16], "uuid": [5, 6], "uuid4": [5, 6], "uuids": 6, "v": [5, 9, 11, 15], "v3": 1, "vai": [1, 4, 6, 8], "val": 13, "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [4, 6, 9, 14, 16], "validad": 6, "validat": [6, 11], "validate_js": 4, "validated": 11, "validation": [4, 6, 7, 8, 13], "validator": [6, 11], "validators": [2, 14], "validity": 11, "valios": 1, "valor": [5, 9, 10, 11, 13], "valq7711": [0, 4], "vals": 15, "valu": [2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15], "value1": 6, "value2": 6, "value_field": 11, "valued": 11, "vam": [1, 6, 9], "vantag": 6, "vantagens": 6, "var": 15, "varch": 6, "vari": 6, "variabl": [5, 6, 9, 11, 13, 15], "various": 5, "vari\u00e1vel": [4, 6, 9, 10], "varredur": 6, "vars": [6, 9, 11, 14], "vaz": 6, "vazi": [2, 6], "ve": [2, 3, 5, 8, 9, 11, 13, 15], "vej": [2, 3], "veloc": 6, "vem": [0, 4, 6], "vendor": 15, "vendor_typ": 15, "vendors": 15, "venv": 2, "ver": [2, 6, 12], "verd": 4, "verdad": 13, "verdadeir": [6, 11, 13], "verif": 6, "verific": [5, 6, 12], "verification": 12, "verified": [5, 11], "verify": 5, "verify_email": 12, "verifying": 12, "vermelh": 4, "vers": 5, "version": [1, 3, 7, 8, 11, 15], "versions": [2, 5, 11], "vers\u00f5": 6, "vertic": 6, "verticaadapt": 6, "very": [0, 4, 8, 9, 11, 12, 14], "vez": [2, 4, 5, 8, 9, 12, 13], "ve\u00edcul": 5, "via": [5, 6, 8, 9, 15], "vias": 6, "vic": 5, "vid": [1, 2, 15], "view": [1, 5, 6], "viewport": 8, "views": 6, "vincul": 6, "vind": 2, "vir": 12, "virtual": [1, 16], "virtualenv": [1, 2], "virtualfields": 6, "visit": [3, 5, 11], "visit_log": 5, "visited": [5, 8], "visiting": [5, 12], "visitor": 6, "visitors": [9, 11], "visits": 6, "vist": [5, 6, 9], "visual": 1, "visualiz": 6, "vis\u00e3": 6, "vis\u00edvel": 4, "vital": 12, "voc": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13], "volt": [5, 6], "vou": 2, "vscod": 2, "vue": [0, 4, 15], "vulner": 8, "v\u00e1l": 4, "v\u00e1r": [2, 4, 5, 6], "v\u00e1ri": [4, 5, 6, 10], "v\u00e3": 6, "v\u00ea": 6, "v\u00edrgul": 6, "v\u00f4o": 7, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 11, 15], "wants": 5, "warning": [2, 5], "was": [0, 5, 6, 11, 12], "watch": [2, 3, 16], "watched": 4, "way": [2, 3, 5, 6, 8, 9, 11, 12, 14], "wayn": [7, 13], "ways": [0, 2, 4, 6, 12, 13, 15], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "web": [0, 1, 2, 5, 6, 8, 12, 13, 14, 15, 16], "web2py": [0, 1, 2, 3, 4, 6, 11, 12, 13, 16], "websit": [6, 15], "websocket": 15, "welcom": [4, 5, 8, 14, 15], "well": [0, 5, 6, 8, 11, 12, 15], "wer": [0, 4], "what": [4, 5, 6, 8, 11, 12, 14, 15], "whatev": [9, 15], "when": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whenev": 4, "wher": [1, 2, 4, 6, 8, 11, 12, 14, 15], "wheth": [5, 6, 11, 12, 14], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whichev": 15, "whil": [5, 6, 7, 11, 12, 14], "whit": [9, 15], "whitelist": 12, "who": [0, 12], "whol": [4, 11], "whos": [6, 8, 11], "why": [5, 8, 14], "widget": [6, 11], "widgets": [15, 16], "width": [8, 11], "wik": [6, 7], "wikiped": [6, 7], "wild": 6, "wildcard": 4, "will": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "window": [5, 8, 11], "windows": [1, 2, 4, 6], "wish": 15, "wishing": 11, "wit": 2, "with": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 15], "with_al": 6, "within": [0, 1, 5, 6, 8, 9, 11, 15], "without": [6, 8, 9, 15, 16], "wolf": 0, "wood": 6, "words": [5, 13], "work": [0, 2, 4, 5, 6, 8, 9, 11, 15], "worked": 0, "workers": 2, "workflow": [5, 16], "working": [2, 11], "workload": 6, "workplac": 1, "works": [2, 6, 8, 11, 12, 13, 14, 15], "workspacefold": 2, "world": [4, 5, 6, 8, 9, 11], "worry": 4, "worth": 8, "would": [0, 5, 6, 9, 11, 15], "wouldn": 6, "wrap": 11, "wrapp": 15, "wrapped": 5, "wrappers": 14, "writ": [2, 4, 5, 6, 8], "writabl": [5, 6, 11, 14], "writing": [4, 6, 14], "written": [1, 8, 11, 13], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 9, 13], "x": [2, 6, 8, 9, 11, 13], "xml": [5, 8, 11, 14, 15], "xmlescap": 9, "xmlns": 9, "xss": [6, 8, 9], "xyz": [9, 11], "y": [2, 9, 11], "yaml": 2, "yatl": [0, 4, 5, 6, 11, 13, 15, 16], "yb": 9, "year": [11, 15], "yes": [2, 6], "yes_or_n": 6, "yet": [0, 2, 4, 5, 8, 11, 15], "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "your": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "your_app": 11, "your_full_path_to_py4web": 1, "your_nam": [1, 15], "yourapp": 6, "yourappnam": 2, "youremail": 12, "yourself": [1, 11], "youtub": [2, 6], "yyyy": 11, "z": [9, 11], "zanferrar": 0, "zap": 12, "zap_id": 12, "zapp": 12, "zapped": 12, "zer": [6, 8, 11, 13], "zip": [0, 2, 6, 11], "zip_cod": 15, "zxjdbc": 6, "\u00c0s": [6, 9], "\u00e1rvor": 4, "\u00e2mbit": 4, "\u00e9": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16], "\u00e9poc": 6, "\u00edndic": 4, "\u00f3bvi": [6, 8], "\u00f3ptim": 4, "\u00faltim": [5, 6, 12], "\u00fanic": [0, 2, 6, 9], "\u00fate": [1, 6], "\u00fatil": 6}, "titles": ["O que \u00e9 py4web?", "Ajuda, recursos e dicas", "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento", "O Dashboard", "Creating an app", "Fixures", "The Database Abstraction Layer (DAL)", "The RestAPI", "Linguagem de template YATL", "Helpers YATL", "Internacionaliza\u00e7\u00e3o", "Foruml\u00e1rios", "Authentication and authorization", "Rede", "De web2py para py4web", "Advanced topics and examples", "py4web: o manual de refer\u00eancia"], "titleterms": {"A": [3, 6, 9, 11], "As": 1, "Comando": 6, "Como": 1, "De": 14, "Do": 4, "EM": 9, "Em": 4, "Este": 1, "Mais": 6, "O": [0, 1, 3, 4, 5, 6], "OS": 14, "Os": [6, 13], "Um": [1, 6], "_lastsql": 6, "_scaffold": 4, "about": 5, "abstraction": 6, "accessing": 14, "acknowledgments": 0, "actions": [7, 12], "adapt": 6, "adicion": 6, "advanced": [11, 15], "agrup": 6, "ajud": 1, "aka": 2, "alias": 6, "alon": 6, "amostr": 13, "an": 4, "and": [6, 7, 8, 11, 12, 13, 14, 15], "antig": 6, "any_of": 11, "anywher": 5, "aplic": 6, "app": [2, 4], "args": 14, "arquiv": 10, "as_dict": 6, "as_list": 6, "assinatur": 6, "asynci": 15, "atalh": 6, "atribut": 6, "atualiz": [6, 10], "aut": 6, "autentic": 12, "auth": [5, 12, 14], "authentication": 12, "authorization": 12, "autocomplet": 15, "avanc": 6, "avg": 6, "a\u00e7\u00e3": 13, "banc": 6, "bas": 6, "basic": [11, 13], "beautify": 9, "belongs": 6, "bin\u00e1ri": 2, "block": 8, "body": 9, "bot\u00e3": 13, "bot\u00f5": 13, "built": 9, "b\u00e1sic": 8, "cach": 6, "caching": 5, "cad": 6, "call": 2, "callabl": 13, "calling": 14, "camp": [6, 13], "caracter\u00edst": 6, "cas": 6, "cascad": 6, "cat": 9, "caveats": 5, "cham": 6, "chang": 4, "chav": 6, "checkbox": 11, "children": 9, "class": 13, "cleanup": 11, "client": 5, "coalesc": 6, "coalesce_zer": 6, "coloc": 2, "columns": 13, "comando": 2, "combin": 6, "commit": 6, "complexity": 11, "comput": 6, "computed": 6, "comuns": 6, "condition": 5, "conex\u00e3": 6, "conex\u00f5": 6, "configur": [2, 6], "constructor": 11, "construtor": 6, "consult": 6, "cont": 6, "contains": 6, "conte\u00fad": 16, "contribu": 1, "control": 6, "convenient": 5, "conversion": 14, "cooki": 5, "copi": 6, "copying": 4, "corr": 2, "count": [6, 14], "creating": 4, "crud": 13, "crypt": 11, "csv": 6, "custom": [11, 13], "customizing": 13, "dad": 6, "dal": [5, 6], "dashboard": 3, "dat": 11, "databas": [5, 6, 11], "datastor": 6, "day": 6, "db": 6, "decor": 5, "def": 8, "default": 8, "defeit": 6, "defin": 6, "define_tabl": 6, "deix": 6, "delet": 6, "deployment": 2, "depur": 1, "design": [2, 11], "development": 8, "dic": 1, "dicion\u00e1ri": 6, "dictionari": 11, "din\u00e2m": 4, "discord": [1, 12], "distinct": 6, "distint": 6, "distribu\u00edd": 6, "div": 9, "dock": 2, "dom": 9, "drop": 6, "elif": 8, "else": 8, "endswith": 6, "engin": 2, "envi": 6, "environment": 2, "equality": 11, "estil": 6, "est\u00e1t": 4, "etiquet": 12, "exampl": [7, 11, 13, 14, 15], "excet": 8, "exclud": 6, "exclus\u00e3": 6, "execu": 6, "executesql": 6, "experiment": 6, "experimental": 6, "export": 6, "express\u00f5": 6, "extend": 8, "extending": 8, "facebook": 12, "factor": 12, "fake_migrat": 6, "falh": 6, "faz": 6, "featur": 13, "fich": 6, "field": [6, 11], "fields": 6, "fil": [4, 11, 14], "filter_in": 6, "filter_out": 6, "filtering": 13, "filtr": 6, "finally": 8, "find": [6, 9], "first": 6, "fixa\u00e7\u00e3": 6, "fixtur": 5, "fixur": 5, "flash": [5, 14], "font": [1, 2], "form": [9, 11, 14, 15], "format": [6, 11, 15], "forms": 11, "formul\u00e1ri": 11, "foruml\u00e1ri": 11, "from": 2, "funcion": 2, "functions": [8, 11], "gae": 2, "gcloud": 2, "generating": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 12], "grid": [13, 14, 15], "groupby": 6, "grup": 1, "h1": 9, "h2": 9, "h3": 9, "h4": 9, "h5": 9, "h6": 9, "having": 6, "head": 9, "hell": 14, "helpers": 9, "heranc": 6, "hour": 6, "html": [6, 9], "htmx": 15, "https": 2, "i": 9, "id": 6, "if": 8, "ilik": 6, "img": 9, "impersonation": 12, "implant": 2, "import": 6, "in": [5, 8, 9, 15], "includ": 8, "inferior": 6, "information": 8, "inject": [5, 9], "inner": 6, "input": 9, "inser": 6, "insert": 6, "inser\u00e7\u00e3": 6, "insid": 12, "instal": 2, "installations": 2, "installing": 2, "interfac": 12, "internacionaliz": 10, "introduction": 6, "is_alphanumeric": 11, "is_dat": 11, "is_date_in_rang": 11, "is_datetim": 11, "is_datetime_in_rang": 11, "is_decimal_in_rang": 11, "is_email": 11, "is_empty_or": 11, "is_equal_t": 11, "is_expr": 11, "is_fil": 11, "is_float_in_rang": 11, "is_imag": 11, "is_in_db": 11, "is_in_set": 11, "is_int_in_rang": 11, "is_ipaddress": 11, "is_ipv4": 11, "is_ipv6": 11, "is_json": 11, "is_length": 11, "is_list_of": 11, "is_list_of_emails": 11, "is_low": 11, "is_match": 11, "is_not_empty": 11, "is_not_in_db": 11, "is_null_or": 11, "is_slug": 11, "is_strong": 11, "is_tim": 11, "is_upload_filenam": 11, "is_upp": 11, "is_url": 11, "isempty": 6, "iter": 6, "join": 6, "joins": 6, "js": 15, "junt": 6, "key": 13, "label": 9, "last": 6, "lay": 6, "layout": 8, "ldap": 12, "left": 6, "leg": 6, "len": 6, "less": 6, "li": 9, "lik": 6, "limitby": 6, "linguag": 8, "linh": 2, "list": 6, "local": [1, 2, 6], "low": 6, "l\u00f3gic": 6, "manipulation": 11, "manual": [1, 16], "many": 6, "marca\u00e7\u00e3": 6, "max": 6, "melhor": 2, "memcach": 5, "memoiz": 5, "mem\u00f3r": 6, "mesm": 6, "methods": [6, 14], "microsoft": 6, "migrat": 6, "migra\u00e7\u00e3": 6, "migra\u00e7\u00f5": 6, "min": 6, "minimal": 11, "minut": 6, "mobil": 8, "model": [4, 6], "modern": 1, "modific": 6, "month": 6, "mssql": 6, "muit": 6, "multipl": [5, 12], "mysql": 6, "new_app": 2, "nom": 6, "nosql": 6, "not": 6, "nov": 6, "oauth2": 12, "object": [13, 15], "objects": 12, "objet": 4, "obten\u00e7\u00e3": 6, "ol": 9, "on": 2, "on_defin": 6, "oper": 6, "option": 9, "options": 11, "op\u00e7\u00e3": 2, "op\u00e7\u00f5": 2, "orden": 6, "orderby": 6, "orderby_on_limitby": 6, "or\u00e1cul": 6, "other": 11, "out": 6, "outr": 6, "overview": 9, "p": 9, "padr\u00e3": 6, "pag": 8, "palavr": 6, "pam": 12, "par": [6, 8, 14], "paramet": 11, "parameters": 13, "part": [2, 6], "par\u00e2metr": 6, "past": 6, "pegadinh": 6, "permiss\u00f5": 12, "personaliz": [5, 6, 9, 13], "pip": 2, "plataform": 2, "plugins": 12, "plural": 6, "pluraliz": 10, "podman": 2, "polic": 7, "polymodel": 6, "pool": 6, "practical": 7, "pre": 9, "preguic": 6, "primarykey": 6, "primeir": 2, "prim\u00e1r": 6, "principal": 3, "princ\u00edpi": 4, "proced": 2, "pr\u00e9": [1, 2], "py4web": [0, 1, 6, 14, 15, 16], "pycharm": 1, "python": 1, "pythonanywher": 2, "p\u00e1gin": [3, 4], "q": 15, "quebr": 6, "query": 6, "quick": 6, "quoting": 6, "rang": 11, "raw": 6, "real": 6, "record": 6, "recurs": [1, 6], "red": [5, 13], "redefin": 6, "redirect": 14, "referent": [6, 13, 16], "regexp": 6, "registr": 6, "relation": 6, "relations": 6, "rela\u00e7\u00e3": 6, "remot": 6, "renderiz": 6, "replic": 6, "represent": 6, "request": 4, "requisit": [1, 2], "reserv": 6, "respons": 7, "restap": 7, "resum": 6, "retorn": [4, 6], "return": [8, 14], "returning": 14, "rnam": 6, "rollback": 6, "rot": 4, "row": 6, "rows": 6, "run": 2, "s": 6, "script": 9, "searching": 13, "seconds": 6, "security": 11, "segur": 6, "select": [6, 9], "selects": 6, "selet": 6, "sequence_nam": 6, "serv": [1, 5, 6, 9], "session": 5, "sessions": 5, "sess\u00e3": 3, "set": [6, 11], "set_password": 2, "setting": 14, "settings": 13, "setup": 2, "sharing": 5, "shell": [2, 6], "sid": [5, 9], "sidec": 11, "simpl": 14, "sincroniz": 6, "singul": 6, "sintax": 8, "sobr": 6, "sort": 6, "sorted": 11, "span": 9, "special": [2, 11], "sql": 6, "sqlit": 6, "stand": 6, "standard": [8, 11], "startswith": 6, "string": 15, "strings": 6, "structur": [8, 11], "style": [9, 13], "substrings": 6, "sugest\u00f5": 1, "sum": 6, "sup": 8, "suport": [2, 6], "supported": 6, "t": 15, "tabel": [6, 16], "tabl": [6, 9], "table_class": 6, "tag": 9, "tagging": 11, "tags": 12, "tbody": 9, "td": 9, "temp": 6, "templat": [5, 8, 13], "temporiz": 6, "tend": 6, "tent": 8, "tentat": 6, "text": 11, "textar": 9, "th": 9, "the": [1, 2, 4, 5, 6, 7, 11, 13, 15], "thead": 9, "tim": 11, "tip": 6, "titl": 9, "to": 6, "tod": 6, "topics": 15, "tour": 6, "tr": 9, "trabalh": 1, "tradu\u00e7\u00e3": 10, "transa\u00e7\u00e3": 6, "translator": 5, "trigger_nam": 6, "tt": 9, "tupl": 11, "tutori": 1, "two": 12, "two_factor_required": 12, "two_factor_send": 12, "two_factor_tri": 12, "type": [6, 11], "types": 6, "ubuntu": 2, "ul": 9, "understanding": 2, "up": 14, "updat": 6, "update_or_insert": 6, "update_record": 6, "upload": 11, "upper": 6, "uri": 6, "url": 9, "urlsign": 5, "usag": 15, "usand": [6, 13], "user": 12, "using": [2, 5, 8, 9, 12, 13, 15], "uso": 6, "utils": 15, "valid": 11, "validate_and_insert": 6, "validate_and_updat": 6, "validation": 11, "validators": [6, 11], "valor": [4, 6], "variabl": [8, 14], "velh": 6, "version": [2, 6], "vez": 6, "view": 14, "virtu": 6, "virtual": [2, 6], "vscod": 1, "v\u00edd": 1, "watch": 4, "web": [3, 4], "web2py": 14, "whil": 8, "widget": 15, "widgets": 11, "with": [11, 12, 14], "without": [2, 11], "workflow": 8, "world": 14, "wsgi": 2, "xml": [6, 9], "yatl": [8, 9], "year": 6, "\u00e9": 0, "\u00edndic": [6, 16]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A auto-refer\u00eancia e aliases": [[6, "self-reference-and-aliases"]], "A minimal form example without a database": [[11, "a-minimal-form-example-without-a-database"]], "A obten\u00e7\u00e3o de um `` row``": [[6, "fetching-a-row"]], "A p\u00e1gina Web principal": [[3, "the-main-web-page"]], "ANY_OF": [[11, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adicionando atributos para campos e tabelas": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced form design": [[11, "advanced-form-design"]], "Advanced topics and examples": [[15, "advanced-topics-and-examples"]], "Agrupamento e contando": [[6, "grouping-and-counting"]], "Ajuda, recursos e dicas": [[1, "help-resources-and-hints"]], "Aplicativos de modelo-less": [[6, "model-less-applications"]], "As fontes no GitHub": [[1, "the-sources-on-github"]], "Assinatura da DAL": [[6, "dal-signature"]], "Atalhos": [[6, "shortcuts"]], "Atualizar os arquivos de tradu\u00e7\u00e3o": [[10, "update-the-translation-files"]], "Authentication and authorization": [[12, "authentication-and-authorization"]], "Authentication using Auth": [[12, "authentication-using-auth"]], "Authorization using Tags": [[12, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[15, "autocomplete-widget-using-htmx"]], "A\u00e7\u00e3o personalizada Bot\u00f5es": [[13, "custom-action-buttons"]], "Bancos de dados legados e tabelas com chave": [[6, "legacy-databases-and-keyed-tables"]], "Bancos de dados replicados": [[6, "replicated-databases"]], "Basic form example": [[11, "basic-form-example"]], "Basic grid example": [[13, "basic-grid-example"]], "Bot\u00e3o Classe A\u00e7\u00e3o Amostra": [[13, "sample-action-button-class"]], "Built-in helpers": [[9, "built-in-helpers"]], "CLEANUP": [[11, "cleanup"]], "CRUD settings": [[13, "crud-settings"]], "CRYPT": [[11, "crypt"]], "CSV (todas as tabelas ao mesmo tempo)": [[6, "csv-all-tables-at-once"]], "CSV (uma tabela de cada vez)": [[6, "csv-one-table-at-a-time"]], "CSV e sincroniza\u00e7\u00e3o de banco de dados remoto": [[6, "csv-and-remote-database-synchronization"]], "Caching e Memoize": [[5, "caching-and-memoize"]], "Campos computados": [[6, "computed-fields"]], "Campos virtuais": [[6, "virtual-fields"]], "Campos virtuais novo estilo (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Campos virtuais velho antigo": [[6, "old-style-virtual-fields"]], "Caracter\u00edsticas avan\u00e7adas": [[6, "advanced-features"]], "Cascades no banco de dados": [[6, "database-cascades"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[15, "celery"]], "Checkbox validation": [[11, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combinando Rows": [[6, "combining-rows"]], "Como contribuir": [[1, "how-to-contribute"]], "Complexity and security validators": [[11, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Configura\u00e7\u00f5es de quoting e case e do banco de dados": [[6, "database-quoting-and-case-settings"]], "Configura\u00e7\u00f5es padr\u00e3o de migra\u00e7\u00e3o": [[6, "default-migration-settings"]], "Construtor DAL": [[6, "dal-constructor"]], "Construtor Field": [[6, "field-constructor"]], "Construtor Table": [[6, "table-constructor"]], "Conte\u00fado:": [[16, null]], "Copiar dados de um para outro db": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom columns": [[13, "custom-columns"]], "Custom forms": [[11, "custom-forms"]], "Custom widgets": [[11, "custom-widgets"]], "Customizing style": [[13, "customizing-style"]], "DAL introduction": [[6, "dal-introduction"]], "Database validators": [[11, "database-validators"]], "Date and time validators": [[11, "date-and-time-validators"]], "De web2py para py4web": [[14, "from-web2py-to-py4web"]], "Decoradores de conveni\u00eancia": [[5, "convenience-decorators"]], "Default page layout": [[8, "default-page-layout"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Depura\u00e7\u00e3o py4web com PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Depura\u00e7\u00e3o py4web com VScode": [[1, "debugging-py4web-with-vscode"]], "Dicas e sugest\u00f5es": [[1, "hints-and-tips"]], "Dictionaries and tuples with IS_IN_SET": [[11, "dictionaries-and-tuples-with-is-in-set"]], "Do princ\u00edpio": [[4, "from-scratch"]], "Em valores de retorno": [[4, "on-return-values"]], "Este manual": [[1, "this-manual"]], "Etiquetas e permiss\u00f5es": [[12, "tags-and-permissions"]], "Experimentar com o shell py4web": [[6, "experiment-with-the-py4web-shell"]], "Exportar e importar dados": [[6, "exporting-and-importing-data"]], "Express\u00f5es": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "Falhas de conex\u00e3o (par\u00e2metro tentativas)": [[6, "connection-failures-attempts-parameter"]], "Fazendo uma conex\u00e3o segura": [[6, "making-a-secure-connection"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[11, "file-upload-field"]], "Fixa\u00e7\u00e3o migra\u00e7\u00f5es quebrados": [[6, "fixing-broken-migrations"]], "Fixtures personalizados": [[5, "custom-fixtures"]], "Fixures": [[5, "fixtures"]], "Form structure manipulation": [[11, "form-structure-manipulation"]], "Foruml\u00e1rios": [[11, "forms"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "HTML e XML (uma tabela de cada vez)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Helpers YATL": [[9, "yatl-helpers"]], "Helpers overview": [[9, "helpers-overview"]], "Helpers personalizados": [[9, "custom-helpers"]], "Heran\u00e7a de tabela": [[6, "table-inheritance"]], "IS_ALPHANUMERIC": [[11, "is-alphanumeric"]], "IS_DATE": [[11, "is-date"]], "IS_DATETIME": [[11, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[11, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[11, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[11, "is-decimal-in-range"]], "IS_EMAIL": [[11, "is-email"]], "IS_EMPTY_OR": [[11, "is-empty-or"]], "IS_EQUAL_TO": [[11, "is-equal-to"]], "IS_EXPR": [[11, "is-expr"]], "IS_FILE": [[11, "is-file"]], "IS_FLOAT_IN_RANGE": [[11, "is-float-in-range"]], "IS_IMAGE": [[11, "is-image"]], "IS_INT_IN_RANGE": [[11, "is-int-in-range"]], "IS_IN_DB": [[11, "is-in-db"]], "IS_IN_DB and Tagging": [[11, "is-in-db-and-tagging"]], "IS_IN_SET": [[11, "is-in-set"]], "IS_IN_SET and Tagging": [[11, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[11, "is-ipaddress"]], "IS_IPV4": [[11, "is-ipv4"]], "IS_IPV6": [[11, "is-ipv6"]], "IS_JSON": [[11, "is-json"]], "IS_LENGTH": [[11, "is-length"]], "IS_LIST_OF": [[11, "is-list-of"]], "IS_LIST_OF_EMAILS": [[11, "is-list-of-emails"]], "IS_LOWER": [[11, "is-lower"]], "IS_MATCH": [[11, "is-match"]], "IS_NOT_EMPTY": [[11, "is-not-empty"]], "IS_NOT_IN_DB": [[11, "is-not-in-db"]], "IS_NULL_OR": [[11, "is-null-or"]], "IS_SLUG": [[11, "is-slug"]], "IS_STRONG": [[11, "is-strong"]], "IS_TIME": [[11, "is-time"]], "IS_UPLOAD_FILENAME": [[11, "is-upload-filename"]], "IS_UPPER": [[11, "is-upper"]], "IS_URL": [[11, "is-url"]], "Implanta\u00e7\u00e3o em PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserir e atualizar a partir de um dicion\u00e1rio": [[6, "inserting-and-updating-from-a-dictionary"]], "Instalando a partir de bin\u00e1rios": [[2, "installing-from-binaries"]], "Instalando a partir de fonte (localmente)": [[2, "installing-from-source-locally"]], "Instala\u00e7\u00e3o de fonte (globalmente)": [[2, "installing-from-source-globally"]], "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento": [[2, "installation-and-startup"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Interface de autentica\u00e7\u00e3o": [[12, "auth-ui"]], "Internacionaliza\u00e7\u00e3o": [[10, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[13, "key-features"]], "LDAP": [[12, "ldap"]], "Left outer join": [[6, "left-outer-join"]], "Linguagem de template YATL": [[8, "yatl-template-language"]], "Local de pasta do banco de dados": [[6, "database-folder-location"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Mais sobre envios": [[6, "more-on-uploads"]], "Many to many relation": [[6, "many-to-many-relation"]], "Marca\u00e7\u00e3o de registros": [[6, "tagging-records"]], "Melhoramento": [[2, "upgrading"]], "Migra\u00e7\u00e3o resumo controle": [[6, "migration-control-summary"]], "Migra\u00e7\u00f5es": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Modelos": [[4, "templates"]], "Multiple Tags objects": [[12, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "Nota sobre novo DAL e adaptadores": [[6, "note-on-new-dal-and-adapters"]], "O Dashboard": [[3, "the-dashboard"]], "O fixture DAL": [[5, "the-dal-fixture"]], "O fixture flash": [[5, "the-flash-fixture"]], "O grupo Google": [[1, "the-google-group"]], "O objeto `` request``": [[4, "the-request-object"]], "O pool de conex\u00f5es": [[6, "connection-pooling"]], "O que \u00e9 py4web?": [[0, "what-is-py4web"]], "OAuth2 with Discord": [[12, "oauth2-with-discord"]], "OAuth2 with Facebook": [[12, "oauth2-with-facebook"]], "OAuth2 with Google": [[12, "oauth2-with-google"]], "Operadores l\u00f3gicos": [[6, "logical-operators"]], "Op\u00e7\u00e3o `` comando call``": [[2, "call-command-option"]], "Op\u00e7\u00e3o `` comando new_app``": [[2, "new-app-command-option"]], "Op\u00e7\u00e3o `` comando run``": [[2, "run-command-option"]], "Op\u00e7\u00e3o `` comando set_password``": [[2, "set-password-command-option"]], "Op\u00e7\u00e3o `` comando setup``": [[2, "setup-command-option"]], "Op\u00e7\u00e3o `` comando shell``": [[2, "shell-command-option"]], "Op\u00e7\u00e3o `` comando version``": [[2, "version-command-option"]], "Op\u00e7\u00f5es de linha de comando": [[2, "command-line-options"]], "Or\u00e1culo": [[6, "oracle"]], "Os campos de refer\u00eancia": [[13, "reference-fields"]], "Os valores por defeito com `` `` coalesce`` e coalesce_zero``": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Other validators": [[11, "other-validators"]], "Outros operadores": [[6, "other-operators"]], "Outros par\u00e2metros do construtor DAL": [[6, "other-dal-constructor-parameters"]], "PAM": [[12, "pam"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Palavras-chave reservadas": [[6, "reserved-keywords"]], "Pegadinhas": [[6, "gotchas"]], "Personalizados `` tipos Field``": [[6, "custom-field-types"]], "Plataformas e pr\u00e9-requisitos suportados": [[2, "supported-platforms-and-prerequisites"]], "Plugins de Autentica\u00e7\u00e3o": [[12, "auth-plugins"]], "Pluralizar": [[10, "pluralize"]], "Primeira corrida": [[2, "first-run"]], "Procedimentos de configura\u00e7\u00e3o": [[2, "setup-procedures"]], "Pr\u00e9-requisitos": [[1, "prerequisites"]], "P\u00e1ginas est\u00e1ticas": [[4, "static-web-pages"]], "P\u00e1ginas web din\u00e2micas": [[4, "dynamic-web-pages"]], "Range, set and equality validators": [[11, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Recursivas `` s SELECT``": [[6, "recursive-selects"]], "Recursos": [[1, "resources"]], "Rede": [[13, "grid"]], "Renderizando Rows com represent": [[6, "rendering-rows-using-represent"]], "Representa\u00e7\u00e3o de dados": [[6, "data-representation"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Rotas": [[4, "routes"]], "SQLite": [[6, "sqlite"]], "Searching and filtering": [[13, "searching-and-filtering"]], "Selects com cache": [[6, "caching-selects"]], "Server-side DOM": [[9, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Sess\u00e3o no Dashboard": [[3, "login-into-the-dashboard"]], "Sharing sessions": [[5, "sharing-sessions"]], "Simple conversion examples": [[14, "simple-conversion-examples"]], "Sintaxe b\u00e1sica": [[8, "basic-syntax"]], "Sorted options": [[11, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[11, "special-type-validators"]], "Standard widgets": [[11, "standard-widgets"]], "Strings de conex\u00e3o (o par\u00e2metro uri)": [[6, "connection-strings-the-uri-parameter"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Tabelas pregui\u00e7osos": [[6, "lazy-tables"]], "Table methods": [[6, "table-methods"]], "Template Functions": [[8, "template-functions"]], "Temporiza\u00e7\u00e3o de consultas": [[6, "timing-queries"]], "Text format validators": [[11, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Form constructor": [[11, "the-form-constructor"]], "The Grid object": [[13, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[15, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[15, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The scheduler": [[15, "the-scheduler"]], "The sidecar parameter": [[11, "the-sidecar-parameter"]], "Transa\u00e7\u00e3o distribu\u00edda": [[6, "distributed-transaction"]], "Tutoriais e v\u00eddeo": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[12, "two-factor-authentication"]], "Um local de trabalho python moderna": [[1, "a-modern-python-workplace"]], "Um para muitos rela\u00e7\u00e3o": [[6, "one-to-many-relation"]], "Understanding the design": [[2, "understanding-the-design"]], "Usando DAL sem definir tabelas": [[6, "using-dal-without-define-tables"]], "Usando o DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Usando templates": [[13, "using-templates"]], "Usando um seleto para uso de mem\u00f3ria inferior \u00e0 base de iterador": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "User Impersonation": [[12, "user-impersonation"]], "Using Auth inside actions": [[12, "using-auth-inside-actions"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[9, "using-inject"]], "Using callable parameters": [[13, "using-callable-parameters"]], "Validation functions": [[11, "validation-functions"]], "Valida\u00e7\u00e3o de formul\u00e1rio": [[11, "form-validation"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "Widgets": [[11, "widgets"]], "`` A``": [[9, "a"]], "`` BEAUTIFY``": [[9, "beautify"]], "`` BODY``": [[9, "body"]], "`` Belongs``": [[6, "belongs"]], "`` CAT``": [[9, "cat"]], "`` Comando SELECT``": [[6, "select-command"]], "`` Count``, `` isempty``, `` DELETE``, `` update``": [[6, "count-isempty-delete-update"]], "`` Def \u2026 return``": [[8, "def-return"]], "`` Div``": [[9, "div"]], "`` Drop``": [[6, "drop"]], "`` EM``": [[9, "em"]], "`` Find``, `` exclude``, `` sort``": [[6, "find-exclude-sort"]], "`` Form``": [[9, "form"]], "`` Format``: representa\u00e7\u00e3o da ficha": [[6, "format-record-representation"]], "`` H1``, `` h2``, `` H3``, `` H4``, `` H5``, `` H6``": [[9, "h1-h2-h3-h4-h5-h6"]], "`` HEAD``": [[9, "head"]], "`` HTML``": [[9, "html"]], "`` IMG``": [[9, "img"]], "`` INPUT``": [[9, "input"]], "`` I``": [[9, "i"]], "`` Id``: Notas sobre a chave prim\u00e1ria": [[6, "id-notes-about-the-primary-key"]], "`` If \u2026 elif \u2026 else``": [[8, "if-elif-else"]], "`` Insert``": [[6, "insert"]], "`` LI``": [[9, "li"]], "`` Label``": [[9, "label"]], "`` Like``, `` ilike``, `` regexp``, `` startswith``, `` endswith``, `` contains``, `` upper``, `` lower``": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "`` Lista: `` e `` contains``": [[6, "list-type-and-contains"]], "`` Migrate``, `` fake_migrate``": [[6, "migrate-fake-migrate"]], "`` OL``": [[9, "ol"]], "`` OPTION``": [[9, "option"]], "`` On_define``": [[6, "on-define"]], "`` Orderby``, `` groupby``, `` limitby``, `` distinct``, `` having``, `` orderby_on_limitby``, `` join``, `` left``, `` cache``": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "`` PRE``": [[9, "pre"]], "`` P``": [[9, "p"]], "`` Para \u2026 in``": [[8, "for-in"]], "`` Primarykey``: Suporte para tabelas legadas": [[6, "primarykey-support-for-legacy-tables"]], "`` Query``, `` Set``, `` Rows``": [[6, "query-set-rows"]], "`` Redefine``": [[6, "redefine"]], "`` Rname``: nome real": [[6, "rname-real-name"]], "`` SCRIPT``": [[9, "script"]], "`` SELECT``": [[9, "select"]], "`` SPAN``": [[9, "span"]], "`` STYLE``": [[9, "style"]], "`` Sequence_name``": [[6, "sequence-name"]], "`` Sum``, `` avg``, `` min``, `` `` max`` e len``": [[6, "sum-avg-min-max-and-len"]], "`` TABLE``, `` TR``, `` TD``": [[9, "table-tr-td"]], "`` TAG``": [[9, "tag"]], "`` TBODY``": [[9, "tbody"]], "`` TEXTAREA``": [[9, "textarea"]], "`` THEAD``": [[9, "thead"]], "`` TH``": [[9, "th"]], "`` TITLE``": [[9, "title"]], "`` TT``": [[9, "tt"]], "`` Table_class``": [[6, "table-class"]], "`` Tentar \u2026 exceto \u2026 else \u2026 finally``": [[8, "try-except-else-finally"]], "`` Trigger_name``": [[6, "trigger-name"]], "`` UL``": [[9, "ul"]], "`` URL``": [[9, "url"]], "`` Update_or_insert``": [[6, "update-or-insert"]], "`` Update_record``": [[6, "update-record"]], "`` Validate_and_insert``, `` validate_and_update``": [[6, "validate-and-insert-validate-and-update"]], "`` While``": [[8, "while"]], "`` XML``": [[9, "xml"]], "`` Year``, `` month``, `` day``, `` hour``, `` minutes``, `` seconds``": [[6, "year-month-day-hour-minutes-seconds"]], "`` _Lastsql``": [[6, "lastsql"]], "`` `` As_dict`` e as_list``": [[6, "as-dict-and-as-list"]], "`` `` Filter_in`` e filter_out``": [[6, "filter-in-and-filter-out"]], "`` `` First`` e last``": [[6, "first-and-last"]], "`` `` Plural`` e singular``": [[6, "plural-and-singular"]], "`` `` commit`` e rollback``": [[6, "commit-and-rollback"]], "`` case``": [[6, "case"]], "`` executesql``": [[6, "executesql"]], "`` polymodel``": [[6, "polymodel"]], "assinatura define_table": [[6, "define-table-signature"]], "block and super": [[8, "block-and-super"]], "cache, em cache": [[6, "cache-cacheable"]], "children": [[9, "children"]], "distinto": [[6, "distinct"]], "extend and include": [[8, "extend-and-include"]], "filtros comuns": [[6, "common-filters"]], "find": [[9, "find"]], "groupby, tendo": [[6, "groupby-having"]], "htmx": [[15, "htmx"]], "htmx usage in Form": [[15, "htmx-usage-in-form"]], "htmx usage in Grid": [[15, "htmx-usage-in-grid"]], "juntar-se, deixou": [[6, "join-left"]], "limitby": [[6, "limitby"]], "modifica\u00e7\u00e3o da tabela e campo em tempo de execu\u00e7\u00e3o": [[6, "run-time-field-and-table-modification"]], "ordenar por": [[6, "orderby"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "py4web and asyncio": [[15, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: o manual de refer\u00eancia": [[16, "py4web-the-reference-manual"]], "retornos de chamada no registro de inser\u00e7\u00e3o, exclus\u00e3o e atualiza\u00e7\u00e3o": [[6, "callbacks-on-record-insert-delete-and-update"]], "string.format": [[15, "string-format"]], "two_factor_required": [[12, "two-factor-required"]], "two_factor_send": [[12, "two-factor-send"]], "two_factor_tries": [[12, "two-factor-tries"]], "utils.js": [[15, "utils-js"]], "versionamento recorde": [[6, "record-versioning"]], "\u00cdndices": [[6, "indexes"]], "\u00cdndices e tabelas": [[16, "indices-and-tables"]], "\u201cAccessing OS files\u201d example": [[14, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[14, "form-and-flash-example"]], "\u201cHello world\u201d example": [[14, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[14, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[14, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[14, "returning-args-example"]], "\u201cReturning variables\u201d example": [[14, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[14, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[14, "view-example"]], "\u201cauth\u201d example": [[14, "auth-example"]], "\u201cgrid\u201d example": [[14, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "00": 7, "01": 7, "02": [6, 11], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "06": 11, "08": 11, "0x4e86": 11, "0x7fa533ff7640": 9, "1": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15], "10": [2, 6, 7, 8, 9, 10, 11, 12, 15], "100": [2, 6, 7, 8, 11, 15], "1000": [5, 6, 11, 15], "1000ms": 15, "100px": 15, "1024": 11, "1048576": 11, "10px": 13, "11": [6, 11], "111111": 15, "11211": 5, "12": 11, "120": 6, "123": [9, 11], "123218": 7, "123456": 11, "125": 6, "127": [2, 3, 5, 11, 13], "13": [5, 6, 11], "132635": 7, "14": [8, 11, 13], "15": [6, 11, 12, 13], "16": 11, "168": 11, "169": 11, "16px": 8, "172": [6, 11], "174": 6, "178974": 7, "19": [6, 7, 11], "192": [6, 11], "1963": 11, "198": 6, "199": 11, "19t05": 7, "1e100": 6, "1kb": 11, "1l": 6, "1mb": 11, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "20": [2, 7, 10, 11], "200": [7, 11, 14, 15], "2001": 11, "2002": 11, "2005": 6, "2007": 0, "2008": 11, "2009": 11, "200ms": 15, "200x200": 11, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 12, "227": 6, "239": 6, "2396": 11, "24": 11, "254": 11, "255": 11, "256": 6, "2616": 11, "28": 11, "2em": 15, "2px": 15, "3": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "30": [2, 6, 8, 11], "301": 14, "309903": 7, "31": [6, 7, 11], "32": [6, 11], "322494": 7, "33": [6, 11], "34": 7, "3490": 11, "3492": 11, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 15, "4": [2, 5, 6, 7, 8, 11, 13], "40": [2, 9, 15], "400": [5, 14], "404": [5, 11, 12], "405515": 7, "43": 6, "45": [8, 11], "451907": 7, "453020": 7, "456": 11, "466030": 7, "4e": 11, "5": [5, 6, 7, 8, 10, 11, 12, 13, 15], "50": [2, 7], "500": 15, "500ms": 15, "512": 6, "53": 11, "54": 8, "559918": 7, "58": 8, "59": 11, "6": [5, 6, 7, 11, 12, 14], "60": [5, 6], "63": [6, 11], "6379": 5, "64": [6, 8, 15], "65": 6, "6to4": 11, "7": [2, 7, 8, 11, 14], "70": 7, "74": 6, "75": 7, "768": 6, "8": [2, 6, 7, 11], "80": [7, 11], "8000": [2, 3, 4, 11, 13], "86": 11, "8601": 7, "8em": [8, 15], "9": [6, 7, 11, 13, 14], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "AS": 6, "Ao": [4, 6, 8, 13], "As": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15], "COMO": 6, "Com": 6, "Comando": 16, "Como": [6, 16], "Da": 6, "De": [0, 1, 4, 6, 16], "Do": [8, 11, 13, 16], "E": [1, 6, 12], "Ela": [1, 6, 8], "Ele": [2, 3, 5, 6, 9], "Eles": [0, 4, 6], "Em": [2, 5, 6, 8, 9], "Essas": 0, "Esse": 4, "Esses": [5, 6], "Esta": [0, 1, 2, 4, 6], "Estas": 9, "Este": [2, 6, 8, 9, 13, 14], "Estes": 6, "For": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15], "Fora": 0, "H\u00e1": [1, 5, 6, 13], "Isso": [2, 4, 6], "Isto": [0, 2, 3, 4, 5, 6, 9, 13], "Mas": [1, 4, 6], "NO": 6, "Na": 0, "Nem": 6, "No": [2, 5, 6, 8, 13], "Nos": 6, "N\u00f3s": [0, 1, 5], "O": [2, 8, 9, 11, 12, 16], "OU": 13, "Os": [0, 3, 4, 8, 9, 12, 16], "Por": [2, 3, 4, 5, 6, 9], "SE": 6, "Se": [1, 2, 3, 4, 6, 8, 9, 13], "Seu": 6, "Tamb\u00e9m": 6, "Um": 5, "Uma": [2, 4, 6, 8, 9], "_": [2, 11, 15], "__": [1, 2, 4], "__file__": [5, 7, 13], "__init": 2, "__init__": [2, 4, 5, 6, 7, 13, 14, 15], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 9], "_action": 9, "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_updat": 6, "_alt": 9, "_and": 11, "_antes_": 6, "_autocomplet": 15, "_autocomplete_search_fields": 15, "_before_delet": 6, "_before_insert": 6, "_before_updat": 6, "_bgcolor": 9, "_c": 9, "_checked": 9, "_class": [5, 9, 11, 15], "_cols": 9, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_dat": 9, "_db": 6, "_dbnam": 6, "_default": [2, 4], "_delet": 6, "_disabled": 9, "_documentation": [1, 3], "_enable_record_versioning": 6, "_extr": 6, "_format": 6, "_href": [5, 8, 9, 11, 13], "_hx": 15, "_id": [6, 9, 11, 15], "_insert": 6, "_listify": 6, "_method": 9, "_nam": [6, 9, 11, 15], "_next_url": 12, "_nonreserved": 6, "_onclick": 11, "_placehold": [11, 15], "_rows": 9, "_scaffold": [5, 8, 9, 11, 12, 13, 14, 16], "_search": 15, "_select": 6, "_selected": 9, "_sesson": 5, "_src": 9, "_style": [11, 15], "_tabl": [6, 11, 15], "_tablenam": 6, "_tag": 12, "_timings": 6, "_titl": [11, 15], "_type": [6, 9, 11, 15], "_u": 9, "_updat": 6, "_ur": 6, "_valu": [9, 11, 15], "_xmlns": 9, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaa": 8, "ab": [9, 11], "aba": 3, "abaix": 6, "abas": 3, "abbreviated": 11, "abc": [9, 11], "abert": [1, 3, 6], "ability": 14, "able": [5, 6, 11], "abort": [4, 6], "about": [6, 7, 12, 13, 14, 15, 16], "abov": [4, 5, 6, 7, 8, 11, 13], "abracadabr": 2, "abrir": 2, "absent": 2, "absolut": [2, 6, 14], "abspath": 4, "abstraction": [5, 14, 16], "abstra\u00e7\u00e3": 6, "acab": 6, "accdesc": 6, "accept": [4, 5, 11, 15], "acceptanc": 11, "accepted": [1, 2, 6, 11, 14, 15], "accepting": 9, "accepts": 11, "access": [4, 5, 6, 9, 12, 14, 15], "accessed": [6, 9, 11], "accessibl": 4, "accessing": [5, 6], "accnum": 6, "accomplish": 6, "accomplished": [6, 12, 14], "according": 8, "accordingly": 8, "account": 6, "acctype": 6, "aceit": [6, 10, 11], "aceler": 6, "acert": 2, "acess": [0, 2, 4, 5, 6], "acess\u00f3ri": 4, "achieved": [5, 14], "acim": [6, 7, 8, 12], "acion": 6, "acknowledgments": 16, "acompanh": 6, "acontec": 6, "acord": 6, "acrescent": 6, "across": [6, 8], "act": 6, "action": [4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "action_button": 13, "action_token": [5, 12], "actions": [4, 5, 6, 13, 14, 16], "activ": [6, 12], "activat": [2, 12], "activated": 12, "activating": 2, "activiti": 6, "acts": 11, "actu": 6, "actual": [5, 6, 8, 12, 13], "actualiz": 6, "actually": [6, 8], "ac\u00e7\u00e3": [4, 5, 6, 7], "ad": 12, "adapt": 12, "adapter_args": 6, "adapters": [6, 15], "add": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "added": [0, 2, 5, 11, 12, 15], "adding": [6, 11, 13], "addition": [6, 8], "additional": [4, 5, 7, 8, 11, 13], "additional_cl": 13, "additional_styl": 13, "address": [2, 11, 12], "adds": 15, "adi": 6, "adiant": 12, "adicion": [2, 5, 10, 11, 12, 13], "adicional": [2, 5, 6], "adi\u00e7\u00e3": 6, "admin": 14, "administr": [0, 6], "administrativ": 2, "administrator": 2, "adquir": 6, "advanc": [2, 12, 13], "advanced": [13, 16], "advantag": [2, 6, 8, 15], "advisabl": 6, "advised": 13, "afet": 6, "after": [5, 6, 8, 11, 12, 13, 15], "after_connection": 6, "after_delet": 6, "after_insert": 6, "after_updat": 6, "aftermath": 6, "again": [2, 4, 5, 6, 11, 15], "against": [6, 7, 9, 11, 13], "age": 6, "aggregat": 6, "agir": [6, 9], "agn\u00f3st": 4, "agor": [2, 4, 5, 6, 8], "agrad": 9, "agreg": 6, "aid": 6, "aims": 0, "aind": [2, 6, 12], "ajax": [8, 13, 15], "ajud": [0, 2, 4, 6, 14, 16], "ajust": 6, "aka": 1, "alcanc": 6, "aleat\u00f3r": 6, "alert": [5, 8, 9, 11, 14], "alerts": [5, 8, 14], "alex": 6, "alfar": [0, 1], "alg": 11, "algo": [5, 6, 7, 8], "algorithm": [5, 11], "algum": [4, 6, 9], "alguns": [0, 2, 4, 5, 6, 7, 8, 9], "ali": [6, 11], "aliment": 6, "all": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "allocated": 11, "allow": [7, 8, 9, 11, 12, 13, 15], "allowed": [6, 7, 11, 12], "allowed_actions": 12, "allowed_attribut": 9, "allowed_overrid": 11, "allowed_patterns": 7, "allowed_schem": 11, "allowing": [1, 11, 15], "allows": [2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 15], "almost": 5, "along": [2, 4, 9, 11, 15], "alphabetically": 11, "alphanumeric": 11, "already": [2, 4, 5, 9, 11, 12, 13], "also": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "alt": 9, "alter": [0, 2, 4, 5, 6, 10], "altering": 6, "altern": 6, "alternat": [5, 15], "alternativ": [2, 8, 11], "although": [2, 8, 11], "alvo": 6, "always": [0, 2, 4, 5, 6, 11, 15], "al\u00e9m": [4, 6, 13], "am": [11, 15], "amazon": 6, "ambas": 6, "ambient": 2, "ambigu": [4, 6], "ambos": [4, 5, 6], "among": [6, 11], "amount": 6, "ampli": 1, "an": [0, 1, 2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16], "analis": [4, 6, 10], "analogy": 14, "ancestor": 9, "anchor": 15, "and": [0, 1, 2, 3, 4, 5, 9, 16], "andaim": 4, "andrew": 1, "anex": 6, "angle": 8, "angul": 15, "angularjs": 0, "aninh": [6, 9], "anonymous": [6, 8, 11], "anoth": [4, 5, 6, 8, 11, 12], "anotherpath": 5, "ansi": 6, "answer": 1, "anteced": 4, "anterior": [2, 6], "antes": [1, 6, 8, 9, 12, 13], "antig": 14, "any": [2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "anyhow": 2, "anyobj": 6, "anything": 4, "anyway": 6, "anywher": [8, 14], "an\u00e1lis": 6, "apag": 11, "aparec": 6, "aparent": 6, "apen": [2, 5, 6, 7], "api": [0, 6, 7, 9, 11, 12, 15], "api_version": 7, "apis": [0, 6, 12, 14], "aplic": [0, 2, 3, 4, 5, 13, 14], "apoi": 6, "apont": 6, "app": [0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "app1": 5, "app1_session": 5, "app2": 5, "app_fold": 14, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appe": [6, 11], "append": [6, 9, 11, 13, 15], "append_id": 13, "appended": [5, 6], "apple": 11, "appli": [6, 11, 15], "application": [2, 5, 6, 8, 11, 12, 14, 15], "applications": [0, 2, 3, 4, 6, 11, 12, 13], "applied": [5, 11, 13, 15], "apply": [0, 5, 11, 12, 13], "applying": [6, 13], "appnam": [2, 5, 12, 14], "appname_session": 5, "approach": [6, 14], "appropriat": [6, 11], "appropriately": 6, "approv": 12, "apps": [0, 1, 2, 3, 4, 5, 6, 8, 12, 14], "apps_fold": 2, "aprend": 1, "apresent": 8, "apropri": 6, "aproxim": 6, "apt": 12, "ap\u00f3s": [2, 6, 13], "aqu": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "aquel": [6, 12], "arbitrary": [4, 12], "arbitr\u00e1ri": 6, "archive_db": 6, "archive_nam": 6, "are": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "aren": 6, "args": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 9, 11, 12], "arguments": [2, 5, 6, 8, 9, 11, 12, 14], "arithmetic": 11, "armazen": [0, 2, 5, 6, 9], "around": [1, 14], "arquiv": [0, 2, 3, 4, 5, 6, 12, 16], "arrang": 11, "array": 15, "arriv": [0, 6], "as_ordered_dict": 6, "asci": 11, "asid": 15, "asked": 2, "asking": 5, "aspas": 6, "assert": 6, "assets": 2, "assigned": [6, 11, 12, 14], "assigning": [14, 15], "assignment": 8, "assigns": 15, "assim": [6, 8], "assinatur": [4, 5], "assist": 4, "assistent": 9, "assoc": [6, 10], "associated": [6, 11, 12], "assum": [2, 5, 6, 7, 10, 11], "assumed": 14, "assuming": 5, "async": 15, "asynci": 16, "at": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "atend": [2, 6], "ativ": [2, 6], "atrav\u00e9s": [6, 8, 9, 12], "atribut": [5, 9], "atribu\u00edd": 6, "attached": [6, 12], "attaching": 14, "attacks": [5, 9], "attempted": 11, "attempting": 6, "attempts": [6, 12], "attention": 6, "attribut": [4, 5, 6, 9, 11, 13, 14, 15], "attributes_plugin": 15, "attributespluginhtmx": 15, "attrs": [11, 13, 15], "atual": [2, 6], "atualiz": [2, 16], "aug": 11, "august": 11, "aul": 13, "aut": 9, "autentic": 6, "auth": [0, 2, 4, 6, 8, 9, 15, 16], "auth_group": 12, "auth_groups": 12, "auth_plugins": 12, "auth_us": [5, 6, 12], "auth_user_tag_groups": [6, 12], "auth_user_tagged_groups": 12, "authenticat": 12, "authenticated": [5, 6], "authentication": [5, 13, 16], "authoriz": [6, 7], "authorization": [5, 16], "authorized": 12, "auto_import": 6, "auto_process": [13, 15], "autocomplete_query": 15, "autodelet": 6, "autogenerated": 6, "automat": [2, 4, 6, 8, 9, 12, 13], "automatic": [4, 6, 8, 14], "automatically": [2, 3, 4, 5, 6, 11, 12, 13, 14, 15], "autoriz": 6, "auxili": [5, 6, 8, 9], "availabl": [1, 2, 6, 8, 9, 12, 14, 15], "avali": [6, 8], "avanc": 16, "avis": [5, 6, 12], "avoid": [1, 2, 5, 6, 11], "avoided": 8, "avoiding": 5, "avoids": 6, "awar": 6, "awesom": [8, 13], "axel": 0, "axolotl": 0, "azul": 4, "a\u00e7\u00e3": [4, 5, 6, 12, 16], "a\u00e7\u00f5": 5, "a\u00e7\u00fac": 5, "b": [5, 6, 8, 9, 11, 14, 15], "back": [5, 6, 11], "backend": 6, "backends": 6, "background": [2, 4, 11, 15], "backported": 6, "backslash": 4, "backup": [2, 6, 11], "backward": 11, "backwards": [0, 11], "bad_days": 6, "bails": 6, "banan": 11, "banc": [0, 1, 3, 4, 5, 12], "bar": [8, 13], "barc": 6, "barr": 4, "barri": 0, "bas": [0, 2, 4, 8, 13, 15], "base64": [6, 8, 15], "base_dn": 12, "baseadapt": 6, "based": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 15], "bash": 2, "basic": [2, 5, 16], "basically": 15, "bast": 2, "bat": 2, "batman": [7, 11, 13], "battl": 0, "be": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "beasley": 0, "becaus": [0, 2, 4, 5, 6, 8, 9, 11, 13, 15], "becom": [11, 15], "bed": 10, "been": [0, 2, 5, 6, 8, 11], "befor": [2, 5, 6, 8, 11, 12, 13], "before_delet": 6, "before_insert": 6, "before_updat": 6, "begin": [11, 13], "beginners": 2, "beginning": [8, 11, 12], "behavior": [6, 11, 14, 15], "behaviour": [2, 11, 13], "being": [5, 6, 7, 8, 11, 15], "believ": [0, 5], "belong": [12, 14], "belonging": 6, "belongs": 12, "below": [5, 6, 7, 11, 13], "bem": [0, 4, 5, 6, 12], "benefits": 15, "benef\u00edci": 6, "best": [2, 5, 6], "bett": [0, 1, 2, 4, 6, 13, 14, 15], "between": [5, 9, 11, 14], "beyond": 11, "bgcolor": 9, "bibliotec": [0, 4, 10], "big": 14, "bigint": 6, "bigint_id": 6, "bilhet": [0, 3, 6], "bilh\u00e9t": 0, "bin": [1, 2], "binari": 2, "binary": 6, "bind": 15, "bin\u00e1ri": 6, "birthplac": 6, "bit": 11, "bitbucket": 1, "black": [8, 11], "blank": [11, 13], "blanks": 11, "blink": 15, "blob": [1, 6], "bloc": [8, 9], "block": [12, 15], "blockquot": 9, "blocks": 8, "blog": [1, 6, 9], "blog_post": 6, "bloqu": 12, "blu": [4, 6, 11, 14], "bmp": 11, "boas": 2, "boat": 6, "bob": 6, "body": [4, 8, 12, 13, 15], "bold": 9, "bom": 2, "bonit": 6, "book": 6, "boolean": [6, 13], "booleans": 6, "boost": [6, 8], "bootstrap": 13, "bord": 15, "botar": 0, "both": [1, 2, 5, 6, 8, 11, 14], "bottl": [0, 4, 5, 8, 14, 15], "bottle_app": 2, "bottlepy": [4, 5], "bottom": 11, "bot\u00e3": 3, "bot\u00f5": [3, 16], "boundari": 11, "boundary": 11, "box": [0, 6, 11], "br": [8, 9], "bracket": 8, "brackets": [8, 11], "branch": [1, 2], "break": [2, 6], "breaking": 6, "breaks": 11, "breez": 1, "brev": 4, "briefly": 2, "broken": [0, 6, 11], "brows": [1, 2, 3, 5, 7, 8, 13, 15], "browsers": 15, "browsing": 3, "bruc": [7, 13], "brut": 6, "bsd": 1, "buff": 6, "bug": 6, "bugs": 1, "build": [1, 2, 4, 5, 9, 13, 15], "building": [4, 11, 15], "built": [0, 1, 4, 6, 8, 11, 15, 16], "bulk_insert": 6, "bulm": [11, 13, 15], "bunch": 2, "busc": [3, 6, 13], "busing": 15, "but": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "button": [3, 4, 5, 11, 13, 15], "buttons": [9, 11, 13, 15], "by": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "bypass": [11, 12], "bypassed": 12, "byte": 11, "bytecod": 8, "bytes": 6, "b\u00e1sic": [0, 1, 6, 16], "c": [1, 2, 3, 5, 6, 8, 9, 11, 14], "ca": 11, "cabec": [9, 13], "cabe\u00e7alh": [4, 9], "cach": [0, 2, 4, 5, 11], "cache_db_select": 6, "cacheabl": 6, "cached": 5, "cache\u00e1vel": 6, "caching": [6, 16], "cachorr": 10, "cad": [2, 4, 5, 8, 10, 13], "caiu": 6, "caix": [0, 6, 9], "calcul": 6, "calend": 13, "call": [0, 5, 6, 8, 11, 12, 15], "callabl": [9, 11], "callback": [6, 12, 15], "callback_url": 12, "called": [1, 2, 5, 6, 7, 8, 9, 11, 13, 14, 15], "calling": [5, 6, 8], "calls": [2, 6, 8, 15], "cam": [6, 10], "caminh": [2, 4, 6, 13], "camp": [5, 7, 9, 11, 16], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "cancel": [11, 15], "cancel_attrs": 15, "cannot": [2, 5, 6, 8, 11, 15], "capabiliti": [13, 15], "capac": 0, "capaz": [1, 2], "capitaliz": 15, "caputur": 15, "cap\u00edtul": [2, 4, 5, 14], "car": 6, "caract": [6, 9], "caracter": 4, "caracter\u00edst": 16, "card": 6, "careful": [5, 6, 8, 14, 15], "carg": 6, "carl": 6, "carreg": [0, 6], "carroll": 0, "carry": 14, "cart": 5, "car\u00e1ct": [4, 6], "cas": [0, 1, 2, 3, 4, 5, 8, 9, 11, 12, 13, 14, 15], "cascading": 6, "cascat": 6, "case_sensitiv": 6, "cassi": 0, "caus": [6, 11], "caveat": [6, 8, 14], "caveats": 16, "cd": 2, "cdnjs": [8, 13], "celery": 16, "cent": [5, 6, 8], "century": 11, "ceo": [7, 13], "cerc": 6, "cert": [1, 2, 6, 13], "certain": [6, 8, 11, 13], "certez": 6, "certificat": 2, "certifiqu": [6, 10], "cf": 4, "cgi": 11, "cha": 6, "challeng": 12, "cham": [2, 4, 5, 7, 8, 10, 13], "chang": [1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16], "change_email": 12, "change_password": [8, 12], "changed": [2, 3, 4, 5, 6, 8, 11, 14, 15], "changed_fil": 4, "changing": 6, "channel": 1, "chapt": [3, 4, 5, 6, 8, 9, 11, 13], "chapters": [1, 5], "char": 6, "charact": [6, 11], "characters": [6, 11], "charg": [2, 14], "chars": 12, "chat": 2, "chats": 1, "chav": [4, 8, 9, 10, 13], "chec": 10, "check": [3, 4, 5, 6, 11, 12, 13], "check_": 15, "check_nonnegative_quantity": 11, "check_reserved": 6, "checkbox": [8, 9], "checkboxwidget": 11, "checked": [9, 11], "checking": [1, 11, 12, 14], "checks": [2, 6, 8, 11, 12], "cherry": 11, "chicag": 6, "choic": [1, 11, 13], "choos": [11, 12], "choosen": 6, "chrom": [3, 15], "cient": 6, "cinc": 6, "circul": 6, "circumstanc": 5, "cit": [6, 9, 11], "cit0801": 7, "cit0802": 7, "cit1601": 15, "clar": 6, "clark": [7, 13], "clash": 11, "class": [5, 6, 8, 9, 11, 12, 14, 15], "class_inner_exceptions": 15, "class_styl": 13, "classific": [6, 13], "claud": 6, "claus": 6, "cle": 11, "clean": [5, 9], "cleanup": 0, "clearly": 15, "clev": 11, "cli": [1, 2], "clic": 13, "clich": 5, "click": [3, 9, 11, 13, 15], "clickabl": 13, "clicked": [13, 15], "clicks": [6, 15], "client": [0, 7, 11, 12, 15], "client_id": 12, "client_ip": 5, "client_secret": 12, "clients": 5, "clientsid": 15, "cliqu": [3, 13], "clock": 11, "clon": [2, 4, 6, 15], "cloned": 2, "clos": [6, 9], "closed": [6, 8], "closing": [5, 6], "cloudflar": [8, 13], "cl\u00e1usul": [6, 8], "cmd": 2, "cn": 12, "co": [6, 11], "coa": 6, "cod": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "codific": 6, "coding": 1, "cois": 6, "colegial": 12, "collapsibl": 9, "collection": [0, 14], "collections": 2, "collects": 2, "colnam": 6, "coloc": 16, "colon": 8, "color": [4, 6, 8, 9, 11, 15], "colors": [4, 6], "cols": 9, "colspan": 9, "column": [6, 13], "columns": [6, 16], "colun": [6, 13], "comand": 6, "comando": [3, 4, 6, 9, 16], "combin": [4, 5, 9, 13], "combined": [5, 6, 11], "come": [0, 5], "comec": [1, 2, 4, 6], "comes": [0, 5, 8, 11, 12, 13, 14, 15], "comet": 6, "coming": 5, "comm": [2, 15], "command": [2, 4, 6, 8], "commands": [2, 4, 6, 8, 9], "comment": [6, 9], "commit": [5, 7, 13, 15], "commits": [5, 6], "committed": [6, 14], "common": [2, 4, 5, 8, 11, 12, 14, 15], "common_filt": 6, "common_filters": 6, "commonality": 8, "communicat": 5, "communication": 6, "communications": 5, "community": [0, 6], "compact": 6, "company": 13, "compar": [6, 14], "compared": 0, "comparison": 11, "compartilh": [5, 6], "compat": 6, "compatibility": 11, "compatibl": [0, 1, 9, 11], "competitor": 0, "compil": [4, 8, 9, 11], "compilation": 8, "compiled": [4, 8, 9, 11], "compiled_css": 4, "compiling": 8, "complet": [0, 2, 6, 9, 11, 13, 15], "completed": [0, 6], "completely": [6, 8, 12], "complex": [1, 2, 4, 5, 6, 8, 9, 12, 14, 15], "complexiti": 15, "complexity": 15, "compliant": 15, "complicated": 5, "component": [0, 4, 5, 8, 9, 11, 12, 15], "component_1": 15, "components": [0, 3, 9, 11, 15], "comport": [4, 6, 9, 13], "compos": 2, "composing": 5, "compost": [6, 9], "compreend": [1, 13], "compressed": 4, "comprim": 3, "compriment": 6, "compris": 3, "compromet": [4, 6], "compromis": 0, "comput": 1, "computed": 16, "computing": 15, "comp\u00f5": 6, "comum": [5, 6], "comunic": 6, "comuns": 3, "concaten": 6, "concatenat": 9, "concatenating": 9, "conceived": 6, "concept": [0, 12], "conch": 2, "concorrent": 0, "concurrency": [6, 15], "concurrent": 15, "concurrently": [2, 11, 15], "cond": 5, "condicion": 8, "condicional": 6, "condition": [6, 11, 16], "conditions": [6, 11], "condi\u00e7\u00e3": 6, "condi\u00e7\u00f5": 6, "conect": [6, 12], "conex\u00e3": 4, "conf": 6, "confiabil": 1, "config": [2, 4], "configur": [3, 12, 13, 14, 15, 16], "configuration": 1, "configurations": 2, "configured": [5, 11, 14], "confirm": [2, 11, 13], "confirmation": 15, "confirmations": 15, "confirms": 12, "conflicts": 6, "conflit": [0, 2, 4, 6], "conform": [6, 12], "confund": 6, "confus": 6, "conhec": [1, 6], "conjunt": [6, 9, 10, 13], "conn": 5, "connect": [3, 6], "connecting": 6, "connection": [5, 6, 11], "connectionpool": 6, "connections": [5, 6, 14], "cons": 6, "conseg": 6, "consegu": 6, "consequenc": [6, 11, 15], "consequently": 11, "consid": [5, 8, 9, 11, 13], "consider": [6, 8, 9], "considered": [5, 6, 8, 14], "consist": [6, 14], "consistency": 8, "consistent": 5, "consists": [6, 13], "consol": [2, 9, 12, 15], "constant": 11, "constraining": 14, "constru": [6, 9, 13], "constructing": 6, "construction": 4, "constructor": [6, 12, 16], "constructors": 11, "construtor": [5, 9, 11, 16], "constru\u00e7\u00e3": [6, 9, 13], "constru\u00edd": [6, 13], "constr\u00f3": 6, "consult": [1, 7, 12, 13], "consulta1": 6, "cont": [2, 5, 9, 10, 12], "contador": [5, 6], "contag": 6, "contain": [2, 4, 5, 6, 8, 9, 11, 12, 15], "contained": [9, 11, 13], "containing": [0, 2, 5, 11, 12, 13, 15], "contains": [3, 5, 7, 8, 10, 11, 13, 14, 15], "contect": 8, "contenh": 5, "content": [2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "contents": [8, 9, 15], "context": [3, 5, 6, 8], "contextlib": 6, "contexts": 5, "conte\u00fad": [4, 6, 9], "continu": [0, 6, 8, 15], "contr": 6, "contribu": 16, "contributed": 0, "control": [2, 8, 11, 12, 13, 15], "controll": [5, 6, 8, 9, 11, 12, 13, 14, 15], "controllers": [4, 6, 8, 9, 11, 14, 15], "controls": 11, "contr\u00e1ri": [0, 4, 6, 8], "cont\u00e9m": [2, 4, 5, 6], "cont\u00eain": 6, "cont\u00eam": [6, 10], "convenienc": 5, "convenient": [6, 16], "convention": [8, 11, 14], "conventions": [4, 6], "conven\u00e7\u00e3": 4, "conversion": [11, 16], "convers\u00e3": 6, "convert": [4, 6, 9], "converted": [1, 6, 11], "converting": 6, "converts": 11, "cooki": [0, 4, 6, 11, 15], "copi": 2, "copied": 2, "copy": [1, 2, 3, 4, 6, 13], "copyfileobj": 6, "copying": [2, 8, 9, 16], "cor": [1, 2, 4, 5], "cord": [4, 6, 10], "corey": 1, "corn": 13, "cornerston": 0, "corp": [8, 9], "corr": 16, "correct": 12, "correctly": 11, "corrent": 6, "correspond": [2, 4, 6, 10], "correspondent": [4, 6, 9], "corresponding": [3, 6, 11, 12, 13, 14], "corresponds": [2, 6, 9], "corret": 6, "corrig": 1, "corromp": 6, "corrupted": 6, "corruption": 6, "costum": 6, "cot": 6, "cota\u00e7\u00e3": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 9, 11, 12, 14], "count": [5, 7, 12, 13, 15], "coupl": 15, "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 4, 5, 6, 8, 11, 12, 13, 15], "create_thing": 11, "created": [0, 2, 4, 5, 6, 8, 11, 12, 15], "created_by": 6, "created_on": 6, "creating": [1, 2, 6, 12, 14, 15, 16], "creation": 6, "creativ": 11, "creativity": 12, "credential_decod": 6, "cresc": 6, "cri": [2, 3, 4, 5, 6, 8, 9, 12, 13], "cria\u00e7\u00e3": [2, 6, 13], "crit": 11, "critical": 2, "crit\u00e9ri": 6, "cross": [5, 9], "crossorigin": 8, "crt": [2, 6], "crud": [3, 11, 15], "cruz": [1, 6], "crypt": 2, "cs": 5, "csrf": [5, 11], "csrf_protection": 11, "csrf_session": 11, "css": [1, 4, 5, 8, 9, 11, 12, 13, 15], "csv": 14, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "cuj": 6, "current": [5, 6, 9, 12, 13, 14, 15], "current_record": 6, "currently": [2, 5, 8], "curs": 1, "cursor": [6, 15], "curt": 6, "custom": [0, 4, 5, 6, 8, 9, 14, 15, 16], "custom_qualifi": 6, "customiz": [8, 11, 13], "customizabl": [11, 13], "customization": 11, "customizing": 16, "cx_oracl": 6, "c\u00edclic": 6, "c\u00f3dig": [4, 5, 6, 8, 9], "c\u00f3p": 6, "d": [2, 7, 9, 11], "dad": [0, 1, 3, 4, 5, 12, 16], "daemon": 2, "daemons": 15, "dal": [2, 4, 7, 11, 13, 15, 16], "dan": 0, "danc": 12, "dand": 4, "dangerous": 14, "daquel": 6, "dar": 6, "dash": 11, "dashboard": [2, 4, 6, 8, 11, 15, 16], "dashboard_mod": 2, "dat": [0, 2, 5, 6, 7, 8, 9, 12, 13, 14, 15], "data_label": 15, "databas": [0, 1, 3, 7, 12, 13, 14, 15, 16], "datalist": 15, "datetim": [4, 5, 6, 7, 11, 15], "datetimewidget": 11, "day": 11, "days": 11, "db": [2, 3, 4, 5, 7, 9, 11, 12, 13, 14, 15], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_fold": [5, 7, 13], "db_nam": 6, "db_uid": 6, "dbadmin": 4, "dbi": 11, "dbo": 6, "dbset": 11, "dbstor": 5, "dc": 12, "dd": 11, "deal": [6, 15], "dealfar": 0, "debounc": 15, "debug": [1, 2, 5, 6, 8], "debugg": 1, "debugged": 8, "debuggers": 14, "debugging": [1, 4], "decid": [6, 11, 13], "decim": 4, "decimal": [6, 11], "decimals": 11, "decl": [4, 6], "declar": [0, 4, 5, 6, 8], "declared": 5, "decod": 6, "decode_credentials": 6, "decoded": 6, "decomp\u00f5": 6, "decor": [1, 4, 16], "decorated": 14, "decorator": [4, 5, 6, 14], "decorators": [5, 14], "dedic": [1, 4, 14], "dedicated": [1, 5, 9], "def": [4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "default": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "defaults": [5, 11, 13, 14], "deferred": [6, 15], "defin": [0, 4, 5, 8, 9, 11, 13, 15], "define_tabl": [5, 7, 11, 12, 13, 14], "defined": [2, 4, 5, 6, 8, 11, 12, 13, 14, 15], "defining": 13, "definit": 11, "definition": [6, 7, 11, 13], "definitions": [6, 7, 14], "defini\u00e7\u00e3": 6, "defini\u00e7\u00f5": 6, "deform": 10, "deix": 12, "del": [5, 6, 9], "delay": 15, "delaying": 15, "deleg": 6, "delet": [2, 4, 7, 11, 13, 15], "deletabl": [11, 13], "delete_record": 6, "deleted": 6, "deleting": [6, 13], "deletion": 6, "deletions": 6, "delimit": [0, 6, 8], "delimiters": [5, 14], "delt": 15, "dem": [1, 2, 15], "demand": 6, "denormaliz": 7, "denormalization": 6, "dentr": [0, 2, 4, 6, 13], "deny": 7, "depend": [4, 5, 6], "dependenc": [0, 2, 5, 14], "dependent": [2, 3, 4, 5], "depending": [6, 8, 11, 13], "depends": [5, 6, 14], "deploy": 2, "deployment": 1, "deployment_tools": 2, "depo": [2, 3, 6], "deprecated": [11, 15], "depur": [6, 8], "deriv": 6, "derived": [6, 11], "desat": 6, "desativ": 6, "desc": 13, "descart": 6, "descendant": 9, "descobert": [2, 10], "descompact": 2, "descrev": 6, "describ": [3, 11], "described": [2, 4, 5, 6, 11], "description": [6, 7, 11, 12], "descriptiv": 11, "descrit": [2, 4, 6, 13], "desd": [5, 6], "desej": [1, 2, 5, 6, 12, 13], "desempenh": 6, "desencad": 3, "desenvolv": 0, "desenvolvedor": [1, 8, 12, 13], "desfaz": 6, "design": [0, 12, 15, 16], "designed": [0, 4, 6, 8, 11, 15], "desir": 8, "desired": [5, 11], "desloc": 6, "desnormaliz": 7, "despej": 6, "dess": [0, 5, 6, 12], "dest": [4, 6, 11], "detail": [6, 9, 13, 15], "detail_fields": 11, "detailed": [2, 13], "details": [0, 1, 5, 6, 7, 8, 11, 13], "detalh": [6, 13], "determin": [4, 5, 6, 10, 11, 12, 13], "determined": [8, 11], "determining": 5, "deterministic": 5, "dev": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13], "develop": [5, 6, 8, 12, 13, 14], "developers": [0, 1, 6, 12, 15], "developing": 4, "development": [0, 1, 4, 6], "development_tools": 2, "devic": 8, "devolv": [6, 8], "di": [0, 5], "diagr": 7, "dialect": 6, "dialects": 6, "dialet": 6, "dic": 16, "dicion\u00e1ri": [9, 10, 11], "dict": [4, 5, 6, 10, 11, 13, 14, 15], "dictionari": 6, "dictionary": [4, 5, 6, 9, 11, 14], "did": [0, 4, 15], "dif": 6, "diferenc": 6, "diferent": [2, 5, 6, 10, 13], "diff": 6, "differenc": [6, 11, 14], "different": [0, 2, 5, 6, 8, 11, 12, 14, 15], "differs": [6, 13], "difficult": [2, 15], "dif\u00edcil": 1, "dig": 6, "digit": [11, 12], "dimensions": 11, "dinam": 9, "din\u00e2m": [6, 16], "dir": [2, 11, 15], "direct": 6, "directiv": [2, 8, 11], "directly": [2, 4, 6, 7, 9, 11, 12, 13, 15], "directory": 12, "direit": [3, 6], "diret": [1, 5, 6, 8], "diret\u00f3ri": 4, "dirnam": [5, 7, 13], "disabl": [6, 13], "disabled": [7, 9, 11], "disallow": 11, "discord_client_id": 12, "discord_client_secret": 12, "discount": 6, "discounted_total": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discriminator": 12, "discuss": 3, "discussed": [6, 8, 9, 11], "discussion": 6, "discuss\u00e3": 1, "discuss\u00f5": 1, "discut": 6, "disk": [5, 6], "dismissal": 14, "dismissibl": 5, "dispar": 6, "display": [5, 11, 12, 13, 15], "displayed": [3, 6, 9, 11, 13, 15], "displaying": [5, 11, 13], "displays": [12, 13], "dispon": 6, "dispon\u00edv": 1, "disposit": [4, 5, 12], "diss": [4, 6, 13], "distinct": [8, 11], "distinction": 6, "distin\u00e7\u00e3": 6, "distribu": 6, "distribut": 6, "distributed_transaction_commit": 6, "distribution": 6, "ditched": 0, "div": [4, 5, 8, 11, 14, 15], "divisibl": [8, 11], "division": [8, 9], "divis\u00e3": 8, "divmod": 6, "diz": [4, 6, 12, 13], "djang": [0, 1, 14], "do_connect": 6, "dobr": 6, "dobrag": 6, "doc": 1, "dockerfil": 2, "docs": [1, 2, 4], "doctor": 6, "doctyp": [8, 13], "document": [6, 8, 9, 11, 15], "documentation": [3, 11, 15], "documentations": 5, "documented": [5, 11], "does": [0, 2, 5, 6, 8, 11, 12, 13, 14, 15], "doesn": 5, "dog": [10, 11, 15], "doh": 11, "doing": [6, 11, 15], "dois": [0, 5, 6, 8], "dom": [8, 16], "domain": [11, 12], "don": [2, 4, 6, 8, 11, 12, 13, 14], "dot": 11, "doubl": [2, 6, 8], "doubt": 13, "down": [11, 15], "download": [2, 11], "downs": 6, "downsid": [6, 14], "dramat": 6, "driv": 6, "driven": 0, "driver_args": 6, "drivers": 6, "drop": 11, "dropdown": [11, 13, 15], "dropdowns": 15, "dropping": 6, "dsn": 6, "dual": 11, "duas": [5, 6], "due": [6, 7, 11], "dummy": [6, 8], "dummyrespons": 8, "dump": 5, "dumpfil": 6, "dumps": [6, 15], "duplicat": 6, "durability": 7, "during": 13, "dynamic": [4, 8, 12], "dynamically": [6, 7, 8, 11], "d\u00e1": [0, 2, 13], "d\u00edgit": [4, 6], "ea": 6, "each": [2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "earli": 15, "early": 5, "easi": [7, 8], "easiest": 6, "easily": [6, 8, 9, 11, 13], "easy": [5, 8, 11], "ebook": 1, "echo": 4, "ecosyst": 15, "edge": 15, "edif\u00edci": 5, "edit": [0, 2, 3, 4, 8, 11, 12, 13, 14, 15], "edit_sidec": 15, "editabl": [13, 14], "editing": [8, 9, 11, 12, 13], "editor": [1, 8], "editors": 8, "edi\u00e7\u00e3": 0, "edi\u00e7\u00f5": 3, "education": 2, "efeit": 6, "efet": 6, "effect": [3, 6, 11], "efficient": 0, "efficiently": [1, 14], "efforts": 1, "efg": 9, "eficient": [5, 6], "eith": [6, 11], "el": 9, "element": [6, 8, 9, 11, 13, 15], "elements": [6, 9, 11, 15], "elev": 6, "elimin": [6, 13], "else": [2, 6, 11, 12, 13, 14, 15], "elt": 15, "el\u00e9tr": [4, 5, 12], "emacs": 8, "email": [2, 8, 11, 12, 14], "emails": 11, "emails_onvalidation": 11, "embed": 9, "embedded": [8, 11], "embedding": 8, "embor": 6, "emerging": 15, "emit": [3, 6], "employ": 5, "employe": 13, "empreg": 13, "empres": 13, "empty": [2, 4, 11, 15], "empty_regex": 11, "en": [5, 7], "enabl": [1, 5, 7, 9, 12, 14, 15], "enable_record_versioning": 6, "enabled": [5, 7, 12, 14], "encaix": 4, "encapsulat": [8, 9], "encerr": 8, "enclosed": 6, "enclosing": 8, "encod": 6, "encoded": [5, 6, 11, 15], "encoding": 6, "encontr": [4, 6, 8, 10, 12], "encrypted": [2, 5], "encryption": 0, "end": [4, 6, 8, 11, 12, 13, 15], "enderec": 6, "ending": 8, "endpoint": [12, 15], "ends": [6, 8, 14], "enforc": [5, 11], "enforced": [6, 11, 14], "enfrent": [1, 6], "engin": [6, 11], "engineering": 2, "english": 5, "enough": [11, 12], "enquant": [0, 6, 8], "enqueu": 15, "enqueue_run": 15, "enqueueing": 15, "ensin": 12, "ensur": 11, "entant": [6, 8, 9, 13], "entend": 6, "enter": [4, 11, 12], "entered": 9, "entering": 5, "enterpris": [1, 12], "entidad": 6, "entir": [8, 14, 15], "entity_quoting": 6, "entrad": [4, 6, 9, 10], "entri": [7, 11, 13], "entropy": 11, "entry": [0, 6, 14], "ent\u00e3": [2, 4, 6, 12], "env": [1, 14], "envelop": 15, "envi": [9, 13], "environ": [5, 14], "environment": [0, 1, 4, 5, 6], "environments": 1, "envolt": 10, "envolv": 6, "eo": 6, "epub": 1, "eq": 7, "equal": [7, 11, 12, 15], "equals": [9, 12], "equip": 5, "equivalent": [4, 5, 6, 9, 11, 14], "equivalently": 9, "errad": 6, "errlog": 5, "erro": [2, 3, 6], "error": [2, 3, 5, 6, 7, 8, 9, 11, 15], "error_messag": 11, "errorlog": 2, "errors": [1, 5, 6, 7, 11, 14], "escap": [6, 8, 9], "escaped": [6, 8, 9], "escaping": [6, 8], "escolh": [1, 4, 6], "escond": 6, "escrav": 6, "escrev": [6, 8, 9], "escrit": [6, 8], "espac": [6, 10, 13], "espec": [5, 6, 9], "especial": [2, 4, 6, 10], "especializ": 6, "especially": [0, 2, 5, 11, 12], "especif": [4, 6], "especific": [4, 5, 6], "especifiqu": 13, "espec\u00edf": [1, 2, 6], "esper": [4, 5, 6], "esprim": 4, "esquec": 6, "esquem": 6, "esquerd": [6, 13], "estabelec": 6, "establish": 6, "established": 6, "establishing": 14, "estad": [5, 6], "estam": 6, "estar": [4, 6, 9], "estend": [0, 5, 6], "estil": 13, "estiv": 6, "estrangeir": [1, 13], "estreit": 6, "estrutur": [4, 5, 6, 10], "est\u00e1t": [9, 16], "est\u00e3": [5, 6, 7, 9, 12], "etap": 6, "etc": [4, 5, 6, 7, 10, 14], "etiquet": [6, 9], "eval": 15, "evaluat": [5, 11, 15], "evaluated": [6, 7], "even": [1, 4, 5, 6, 8, 9, 11, 13, 14, 15], "event": 6, "event_tim": 6, "events": [2, 15], "eventually": 5, "ever": 6, "every": [0, 5, 6, 12, 13, 14, 15], "everyon": [0, 1], "everything": [2, 14, 15], "evit": [0, 2, 6, 8, 11], "evolution": 0, "ex": 6, "exact": [8, 14], "exactly": 5, "exampl": [1, 2, 4, 5, 6, 8, 9, 10, 12, 16], "exat": [6, 8], "excellent": [1, 13], "except": [2, 5, 6, 8, 9, 11, 12, 15], "exception": [5, 6, 11, 12, 15], "exceptions": [4, 5, 15], "excep\u00e7\u00e3": 8, "excerpt": 8, "excet": [5, 6], "exce\u00e7\u00e3": [4, 5, 6, 8], "exce\u00e7\u00f5": 4, "exclu": 6, "exclud": 11, "exclus": 6, "exclusiv": [11, 12], "exclusively": [0, 5, 6], "exclus\u00e3": 13, "exclu\u00edd": [2, 6], "exe": 2, "execu": [2, 4], "execut": [0, 2, 3, 6, 11], "executabl": [6, 9], "executed": [2, 5, 6, 8, 14, 15], "executing": 15, "execution": [1, 15], "exempl": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "exercis": 5, "exerc\u00edci": 12, "exib": [3, 6, 8, 9, 13], "exibi\u00e7\u00e3": [12, 13], "exig": [1, 2, 6, 12], "exist": [1, 2, 4, 5, 6, 8, 11, 15], "existenc": 12, "existent": [2, 6, 12, 13], "existing": [2, 5, 6, 11], "exists": [5, 6, 11], "exit": 2, "exiting": 5, "exp": [4, 6], "expand": 3, "expect": [6, 11], "expected": 14, "expects": [2, 9], "experienc": [1, 12], "experienced": 0, "experiment": [1, 11], "experimental": [2, 5], "experimenting": 1, "expir": 5, "expiration": 5, "explain": 11, "explained": [5, 6, 11, 13], "explanatory": 6, "explic": [4, 6], "explicit": [0, 2, 4, 5, 6, 8, 11], "explicitely": 15, "explicitly": [0, 2, 5, 6, 8, 9, 11], "explict": 6, "exploring": 3, "expl\u00edcit": [6, 12], "expor": [4, 12], "export": 16, "export_to_csv_fil": 6, "exporting": 6, "expos": [4, 5], "expost": 7, "express": 11, "expressed": 11, "expression": [4, 6, 8, 10, 11, 13], "expressions": [9, 11, 15], "express\u00e3": [6, 7, 10, 13], "express\u00f5": 10, "exp\u00f5": [0, 3, 4, 6, 12], "extend": [5, 6, 11, 12, 14, 15], "extended": 8, "extends": [6, 8, 15], "extensibl": 14, "extension": [11, 14], "extensions": 11, "extensively": 3, "extens\u00e3": 6, "extern": 2, "external": 6, "extra": [5, 6, 11, 12], "extra_fields": 5, "extract": [6, 11], "extracted": 6, "extracts": 15, "extras": 6, "extra\u00edd": 6, "extrem": 6, "f": [6, 12, 13, 14, 15], "fa": 13, "facebook": [0, 5], "facil": [4, 5, 6], "facilitat": 4, "fact": [4, 5, 14], "factori": 9, "fail": [6, 8, 11, 15], "failed": 6, "fails": [3, 11], "failur": [6, 11, 15], "fak": 6, "fake_migrate_all": 6, "falh": 4, "fall": 11, "fals": [2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "falt": 6, "famous": 1, "fancy": 15, "far": [13, 15], "fas": 6, "fast": [0, 4, 6, 8, 14, 15], "fat": 6, "fath": 6, "father_id": 6, "favorite_color": 5, "faz": [2, 5, 8, 9, 11, 12], "fb00": 11, "fdb": 6, "fe80": 11, "feasibl": [2, 11], "featur": [0, 4, 6, 7, 8, 14, 16], "february": 5, "fech": [6, 8, 9], "fechament": 9, "feit": 6, "fetch": [6, 14, 15], "fetchon": 6, "few": [8, 12, 15], "fez": [2, 6], "ff00": 11, "fic": 6, "ficheir": 6, "fict\u00edc": 6, "fict\u00edci": 6, "fid": 6, "field": [2, 4, 5, 7, 12, 13, 14, 15, 16], "field1": 6, "field2": 6, "field3": 6, "field_id": 13, "fieldnam": [6, 15], "fields": [5, 7, 11, 12, 13, 14, 16], "fieldstorag": 11, "fifth": 13, "fil": [0, 1, 2, 3, 5, 6, 8, 9, 10, 12, 13, 15, 16], "file_content": [6, 15], "file_nam": [6, 15], "file_path": 14, "fileir": 6, "filenam": [2, 4, 5, 6, 11], "filep": 4, "filepaths": 4, "filesyst": [4, 5, 6], "fileuploadwidget": 11, "fill": [11, 15], "filled": 11, "filt": [2, 4, 7, 11, 13], "filter_in": 11, "filter_out": 13, "filtered": 12, "filters": [4, 11], "filtr": [12, 13], "filtrag": [4, 13], "fim": [1, 2, 5, 6], "fin": [2, 12, 13], "final": [1, 2, 5, 6, 10], "finally": [4, 13], "find": [1, 2, 4, 11, 12, 13], "find_by_tag": 12, "find_match": 10, "findall": 11, "finding": 13, "finds": [6, 15], "fins": 6, "firebird": 6, "firebird_embedded": 6, "firebirdadapt": 6, "firebirdembedded": 6, "firebirdembeddedadapt": 6, "firefox": [3, 15], "firfox": 15, "first": [0, 2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15], "first_nam": [4, 5, 12, 13], "first_only": 9, "first_row": 6, "first_row_dict": 6, "fist": 11, "fits": 11, "fix": [5, 6], "fixed": [6, 14], "fixtur": [0, 2, 6, 9, 14, 16], "fixur": 16, "fiz": 1, "fk_field": 15, "fk_tabl": 15, "fkdaog": 8, "flag": 11, "flash": [8, 11, 15, 16], "flask": [0, 14], "flexibil": [0, 13], "flexibility": 15, "flexibl": [6, 12], "flex\u00edv": 0, "flex\u00edvel": 6, "flight": 7, "float": [4, 11], "floating": 11, "flow": 12, "flux": 6, "fn": 2, "focus": 15, "fold": [1, 2, 3, 4, 5, 6, 7, 10, 11, 13, 14], "folders": 2, "follow": [2, 4, 7, 12, 13, 14], "followed": [2, 5, 11], "following": [1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "follows": [5, 6, 11], "font": [6, 8, 11, 13], "foo": 13, "foot": 8, "footers": 8, "footing": 12, "forbid": 11, "forbidden": 11, "forc": [2, 6, 7, 11, 12], "forcing": 11, "foreground": 11, "foreign": 13, "foreign_key_checks": 6, "forgery": 5, "forget": 13, "form": [0, 4, 5, 6, 7, 10, 12, 13, 16], "form_basic": 11, "form_custom_widgets": 11, "form_exampl": 11, "form_minimal": 11, "form_nam": 11, "form_upload": 11, "form_widgets": 11, "format": [4, 5, 7, 9, 10, 12, 13], "formats": 11, "formatt": 15, "forma\u00e7\u00e3": 6, "formdat": 7, "forms": [6, 9, 13, 14, 15], "formstyl": [11, 13, 15], "formstylebootstrap4": 11, "formstylebulm": [11, 13, 15], "formstyledefault": [11, 13], "formstylefactory": 15, "formul\u00e1ri": [6, 12, 13, 16], "fornec": [0, 2, 3, 4, 5, 6, 9, 12, 13], "forum": 3, "foruml\u00e1ri": [6, 9, 16], "forward": 1, "found": [2, 6, 11], "four": [2, 6], "fourth": 11, "fp": 5, "fr": 10, "fracass": 6, "framework": [0, 2, 11, 12, 13, 14, 15], "frameworks": [0, 2, 5, 14, 15], "fras": 6, "fre": [1, 5, 12], "freetext": 15, "frent": 8, "frequently": 11, "frequ\u00eanc": 1, "friendly": [0, 5, 8], "from": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "from_address": 12, "front": [11, 15], "frontends": 15, "fronts": 0, "fsstorag": 5, "ftps": 11, "fug": [6, 8], "full": [2, 4, 6, 8, 11, 15], "fullnam": 6, "fully": [4, 5, 6, 11], "func": [2, 5], "funcion": [6, 16], "funcional": [0, 5, 6], "function": [2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "functional": 15, "functionaliti": 2, "functionality": [0, 8, 14], "functions": [2, 5, 9, 15], "functools": 15, "fund": 4, "fun\u00e7\u00e3": [4, 6, 8, 9], "fun\u00e7\u00f5": [4, 8], "futur": [5, 14, 15], "f\u00e1bric": 6, "f\u00e1cil": [0, 6, 8, 9, 12], "f\u00edsic": 12, "g": [1, 2, 6, 9, 11], "gain": 2, "gananc": 4, "garant": [6, 8], "garraf": 4, "gavgavian": 1, "gend": 6, "general": [5, 6, 11, 12], "generaliz": 6, "generally": [2, 5, 8], "generat": [2, 6, 8, 9, 11, 12, 13, 14, 15], "generated": [1, 5, 6, 8, 11, 13, 15], "generation": 1, "generator": 9, "generic": [2, 4, 5, 6, 11], "generically": 6, "genindex": 16, "gen\u00e9r": 6, "ger": [6, 8, 9, 12, 13], "gerador": 6, "geral": [0, 2, 6, 7, 9], "german": 10, "gest\u00e3": [0, 1], "get": [1, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16], "get_cooki": 15, "get_us": [4, 5, 12, 14], "get_vars": [7, 14], "gets": [8, 12], "getvalu": 6, "gevent": [1, 2], "geventwebsocketserv": 2, "geventws": 2, "gia": 5, "gib": 6, "gif": 11, "git": [1, 2], "github": [2, 3, 4, 6, 13], "gitlat": 1, "giv": [4, 5, 6, 8, 11, 12], "given": [2, 5, 6, 8, 11, 15], "giving": 5, "global": [0, 6, 14, 15], "globally": [2, 6], "globals": [5, 6, 8, 12, 14], "go": [2, 4, 13], "goes": [6, 11], "going": [4, 15], "good": [3, 11], "googl": [0, 3, 5, 8, 11, 13], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gost": 6, "got": 6, "gotch": 6, "gott": 8, "grac": 6, "grad": 0, "grand": 6, "granul": 6, "granulary": 11, "graphql": 7, "grau": 6, "grav": 6, "grava\u00e7\u00f5": 11, "gravidad": 6, "grav\u00e1vel": 6, "great": 15, "green": [4, 6, 11, 14], "grelh": 13, "grid": [0, 16], "grid_class_styl": 13, "grid_tutorial": 13, "gridactionbutton": 13, "gridclassstyl": 13, "gridclassstylebulm": 13, "grids": 13, "group": [1, 3, 5, 12, 14], "group_nam": [5, 12], "groupby": 11, "grouping": 2, "groups": [0, 1, 3, 5, 12, 14], "growing": [0, 15], "grup": [6, 12], "gt": [7, 9], "guarant": 5, "guaranteed": [6, 14, 15], "gui": 3, "guid": 2, "guidelin": 12, "gunicorn": 2, "gunicorngevent": 2, "gz": 11, "h": [2, 11], "h1": [4, 8], "h2": [8, 11], "habilit": 6, "had": 6, "hamburg": 8, "hand": [2, 11, 15], "handl": [2, 4, 5, 6, 14, 15], "handled": [4, 5, 11, 15], "handlers": 4, "handling": 13, "handy": 6, "hanging": 1, "happen": 5, "happens": 6, "hard": 14, "hardcod": 5, "harmoniz": 4, "has": [0, 2, 4, 5, 6, 8, 11, 12, 13, 14, 15], "has_membership": 12, "hash": [2, 6, 11], "hashed": 11, "hav": [0, 1, 2, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "head": [4, 5, 6, 8, 13, 15], "headers": [4, 8, 15], "heading": 11, "headings": [9, 13], "height": [11, 13, 15], "hell": [4, 5, 6, 8, 9, 11, 12, 15], "help": [1, 2, 5, 6, 7, 8, 9, 11, 13, 14], "helpers": [4, 6, 8, 11, 13, 14, 16], "helps": [6, 8, 11], "henc": [0, 2, 5, 6, 11], "her": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15], "herd": 6, "her\u00f3": 7, "hesitat": 6, "hex": 11, "hh": 11, "hi": 15, "hid": 13, "hidden": [11, 15], "hidden_div": 15, "hidden_input": 15, "hierarchical": 12, "high": [11, 12], "highest": 11, "highlighting": [1, 8], "highly": [1, 13], "hints": 13, "his": 11, "historical": 0, "history": 11, "hist\u00f3r": [5, 6], "hmac": 11, "ho": 5, "hold": 15, "holds": 6, "hom": 8, "hom\u00f3log": 4, "hor": 6, "hosped": 1, "host": [2, 5, 11, 12], "hosted": 1, "hour": 11, "hous": 14, "housekeeping": 6, "houv": 6, "how": [0, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15], "howev": [6, 8, 11, 15], "href": [8, 9, 11, 12, 13], "hs256": 5, "html": [1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15], "html5": 8, "htmx": [13, 16], "htmx_form": 15, "htmx_form_dem": 15, "htmx_grid": 15, "htmx_list": 15, "htmxautocompletewidget": 15, "http": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "https": [1, 3, 4, 5, 7, 8, 11, 12, 13, 15], "httrespons": 5, "hulk": 11, "hundrands": 15, "hx": 15, "hypertext": 15, "hyphen": 9, "h\u00e1bit": 2, "h\u00edfens": 9, "i": [4, 5, 6, 7, 8, 11, 12, 15], "i18n": 10, "ibm_db_dbi": 6, "icon": [8, 13], "icons": 13, "id": [2, 5, 7, 8, 9, 11, 12, 13, 14, 15], "id1": 6, "id2": 6, "id_field_nam": 13, "id_valu": 13, "ide": [0, 1, 2, 3, 6], "ident": 7, "identical": 14, "identifi": 6, "identific": [6, 9], "identify": 4, "identifying": [5, 11], "identity": [6, 7, 14], "ides": 14, "idiom": 10, "idn": 11, "ids": 6, "ie": 11, "ietf": 11, "if": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15], "ignor": [5, 6, 8, 11, 13], "ignore_attribute_plugin": 13, "ignore_common_filters": [6, 11], "ignore_field_cas": 6, "ignored": [4, 8, 9, 13, 15], "igual": [6, 7], "iip": 6, "illustrat": 6, "ilustr": [6, 8], "imag": [6, 8, 9, 11], "image_fil": 6, "imagin": [5, 6, 8, 15], "imaging": 11, "imap": 6, "imapadapt": 6, "imaplib": 6, "imediat": 13, "img": 4, "immediat": 2, "immediately": 6, "immensely": 0, "imped": [6, 9], "impersonat": 12, "impersonating": 12, "implement": [5, 6, 8, 12], "implementation": [4, 8, 11, 14], "implementations": 15, "implemented": 6, "implements": [5, 6], "impli": 7, "implications": 5, "implicit": 6, "implicitly": 11, "impl\u00edcit": 6, "impor": 6, "import": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "import_and_sync": 6, "import_from_csv_fil": 6, "important": [0, 2, 4, 5, 6, 11, 12], "imported": [2, 11, 12, 14], "importing": 6, "impos": 8, "impot": 11, "imprim": 6, "improved": 11, "improvement": 13, "improving": [11, 12], "in": [0, 1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 14, 16], "inalter": 6, "inclu": [0, 4, 6, 8, 9, 13], "includ": [4, 6, 7, 9, 13, 15], "include_action_button_text": 13, "include_paths": 4, "included": [6, 8, 11, 13], "including": [5, 11, 13, 14, 15], "inclusion": 0, "inclusiv": [0, 11], "inclus\u00e3": 9, "inclu\u00edd": [6, 9], "incoming": 2, "incomum": 6, "incorpor": 6, "incorret": 8, "increased": 5, "increment": 6, "indeed": [0, 5], "indent": 8, "indentation": 8, "indented": 8, "independent": [0, 5, 6, 12], "indesej": [2, 6], "index": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "indic": [4, 6], "indicat": [11, 14], "indicator": 15, "individu": [0, 2, 5, 6], "individual": [5, 6, 7, 8, 11], "indo": 6, "inefficient": 5, "ineficient": 6, "infinit": 6, "info": [2, 4, 5, 12], "inform": [1, 4, 5, 6, 11], "information": [5, 6, 7, 11, 12, 14, 16], "informed": 6, "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingredient": 4, "ingres": 6, "ingresadapt": 6, "ingresdb": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "inic": [2, 4], "inicializ": [4, 5], "init": [4, 13], "initial": [8, 11], "initializ": 2, "initialized": 0, "inject": [11, 16], "injected": [5, 8, 9, 11], "injecting": 9, "injection": 6, "injections": 9, "inje\u00e7\u00e3": 6, "inlin": 15, "inner": [5, 15], "input": [2, 5, 6, 8, 11, 15], "inputs": [11, 15], "insegur": 9, "insensitiv": 11, "inser": [3, 8], "insert": [5, 7, 8, 11, 12, 13, 15], "inserted": 8, "inserting": 11, "inserts": 11, "inser\u00e7\u00f5": 6, "insid": [1, 2, 4, 5, 6, 8, 9, 11, 13, 14, 15], "insir": 6, "insist": 9, "inspector": 8, "inspired": 7, "instal": [3, 6, 12, 16], "install": [2, 6, 12, 15], "installation": 2, "installations": 16, "installed": [0, 1, 2, 3, 4, 5, 6], "installs": 2, "instanc": [6, 9, 11, 13, 15], "instanci": 6, "instantiat": [6, 12, 14], "instantiated": 6, "instantiation": [12, 13], "instead": [1, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "instructions": [2, 11], "instru\u00e7\u00e3": 6, "instru\u00e7\u00f5": 6, "inst\u00e2nc": [6, 13], "int": [4, 6, 11, 12, 14], "int2ip": 6, "integ": [2, 6, 7, 9, 11, 15], "integers": 11, "integr": 0, "integrated": 1, "integration": 15, "integrity": [8, 15], "inteir": [4, 6], "intended": [6, 15], "intentionally": 11, "interaction": 5, "interag": 0, "interchangeably": 12, "interfac": [0, 3, 5, 6, 13, 14, 15], "interior": 8, "intermedi\u00e1r": 6, "intern": [5, 6], "internacionaliz": [0, 4, 16], "internal": [0, 1, 8, 12], "internally": [4, 5, 6, 13], "internationaliz": 11, "internationalization": [5, 11, 14], "internationalized": 11, "interpret": [0, 6], "interpreted": 9, "interpreting": 7, "interromp": 6, "intersec\u00e7\u00e3": 6, "into": [0, 2, 4, 5, 6, 8, 9, 11, 14, 15], "introdu": 2, "introduc": 0, "introduction": [1, 16], "introduz": 8, "intuitively": 11, "invalid": [2, 6, 11], "invalidated": 5, "invalidating": 11, "invers": 6, "invert": [6, 11], "invisibl": 6, "involv": [6, 13, 14], "involved": [6, 8], "inv\u00e9s": 6, "in\u00edci": 6, "in\u00fatil": 6, "io": [2, 6], "ip": [6, 11], "ip2int": 6, "ip_list": 12, "ipaddr": 6, "ipaddress": 12, "iptabl": 2, "ipv4": [6, 11], "ipv4address": 12, "ipv4network": 12, "ipv6": 11, "irem": [4, 5], "ir\u00e1": [2, 3, 4, 6, 8, 12, 13], "is": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "is_6to4": 11, "is_activ": 6, "is_automatic": 11, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_impersonating": 12, "is_in_db": [6, 13], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_local": 11, "is_localhost": 11, "is_multicast": 11, "is_not_empty": 6, "is_null_or": 13, "is_privat": 11, "is_public": 6, "is_reserved": 11, "is_routeabl": 11, "is_set": 11, "is_tered": 11, "is_tim": 6, "isdir": [7, 13], "isn": [11, 13], "iso": 7, "isolation": 15, "issu": [0, 6], "it": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "italian": [5, 10], "item": [6, 8, 9], "itemize1": 8, "itemize2": 8, "items": [6, 7, 8, 11], "itens": 6, "iter": 8, "iterabl": [6, 11], "iterations": 11, "iterators": 6, "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "itself": [2, 6, 11, 15], "it\u00e1l": 9, "iv": 6, "janel": 2, "javascript": [1, 4, 7, 9, 15], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlit": 6, "jdbcsqliteadapt": 6, "jetbrains": 1, "jim": [0, 1, 13], "jinja2": 5, "job": [7, 11, 13], "jog": [6, 10], "john": [0, 6], "join": [4, 5, 7, 11, 13, 14], "joined": 13, "joins": [13, 16], "jonathan": 6, "jorn": 1, "journalist": [7, 13], "jpeg": 11, "jpg": 11, "jpsteil": 13, "jquery": [9, 11, 15], "js": [0, 4, 5, 8, 10, 14, 16], "jsl": 15, "json": [0, 1, 2, 4, 5, 6, 7, 10, 11, 14, 15], "junt": [9, 13], "jun\u00e7\u00e3": [6, 12], "jun\u00e7\u00f5": 6, "just": [1, 2, 4, 5, 6, 7, 8, 11, 13, 15], "jwt": 5, "jython": 6, "k": [5, 8, 14], "kargs": 9, "kbd": 2, "kbytes": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 9, 11, 14], "keep_valu": 11, "keeps": [5, 13], "kell": 0, "ken": 6, "kent": [7, 13], "kevin": 0, "key": [2, 4, 5, 6, 7, 9, 11, 12, 16], "keycod": 15, "keyed": 6, "keys": [6, 7], "keyup": 15, "keyword": [6, 8, 9], "keywords": 6, "kfield": 15, "killed": 15, "kind": 4, "kindness": 0, "kinterbasdb": 6, "know": [5, 13], "known": [6, 8], "known_expressions": 10, "knows": 5, "ktabl": 15, "kwargs": [6, 15], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 11], "la": [4, 6], "label": [6, 7, 8, 11, 15], "labeling": 14, "labels": 11, "lac": 6, "lacking": 11, "lacks": 14, "lad": [1, 5, 6], "lambd": [5, 6, 9, 11, 13, 15], "languag": [1, 4, 5, 8, 10, 14, 15], "larg": [0, 11], "last": [1, 5, 8, 11, 12, 13, 15], "last_insert_id": 6, "last_nam": [5, 12, 13], "last_row": 6, "lastdot": 11, "lastrowid": 6, "lat": [1, 2, 4, 5, 6, 8, 9, 11, 13], "latest": [2, 6, 14], "latin1": 6, "latt": [6, 11, 14], "launch": [1, 2], "lax": 5, "lay": [5, 14, 16], "layers": 5, "layout": [11, 12, 13, 14, 15, 16], "layouts": [8, 13], "lazily": 15, "lazy": [2, 4, 6], "lazy_tabl": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 12, "ldap_setting": 12, "ldap_settings": 12, "ldapplugin": 12, "lead": [13, 15], "learn": [1, 6], "least": [1, 2, 11, 14, 15], "leav": [5, 6], "left": [8, 11, 13, 15], "legacy": 6, "leg\u00edvel": 6, "leitur": 6, "lembr": [3, 6, 8, 11], "len": 15, "length": [6, 11], "ler": [1, 6], "less": [7, 11, 14, 15], "let": [7, 11, 15], "lets": 2, "letters": 11, "letting": 6, "lev": [6, 9], "levant": 6, "level": [2, 6, 7, 11, 12], "leverag": 0, "li": [8, 11, 12, 15], "lib": 2, "libldap2": 12, "librari": 12, "library": [2, 6, 10, 11, 14, 15], "libs": [8, 9, 13], "libsasl2": 12, "libsass": 4, "licens": 1, "lid": [1, 4, 5, 6, 13], "lif": 15, "lifespan": 11, "lifetim": 5, "lig": [2, 5, 6, 9], "liga\u00e7\u00e3": [4, 5, 6], "liga\u00e7\u00f5": [6, 9], "light": 14, "lik": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "limit": [5, 6, 7, 11, 12], "limitation": 8, "limited": [0, 2, 5, 14, 15], "limiting": 15, "limits": 11, "limp": 1, "lin": [2, 4, 5, 7, 8, 9, 11, 12, 13, 15], "linguag": [0, 4, 5, 16], "linguagens": 4, "linh": [5, 6, 8, 9, 13, 16], "link": [4, 7, 8, 9, 11, 12, 13], "linked": 7, "links": [2, 6, 13, 15], "linting": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 15], "list_of_fields": 6, "listabl": 6, "listagens": 9, "listed": [5, 11, 15], "listening": 3, "listproperty": 6, "lists": [6, 13], "liststringproperty": 6, "listwidget": 11, "littl": [1, 5, 6], "liv": 15, "livr": [1, 6], "lix": 6, "ll": [1, 2, 3, 5, 6, 8, 11, 13, 15], "lo": [1, 2, 3, 4, 6, 7, 8, 9], "load": [3, 5, 15], "loaded": [4, 8, 13, 15], "loading": 15, "loads": [6, 15], "loazkjy": 8, "loc": 5, "local": [3, 5, 8, 11, 12, 13], "localhost": [2, 4, 5, 6, 11], "localiz": 4, "locally": 2, "locals": [5, 11, 14], "locat": 14, "location": [2, 4, 6, 8, 14], "locked": 6, "locking": 5, "locks": 15, "log": [0, 2, 4, 5, 6, 8, 9, 12, 14, 15], "logerrors": 5, "logfil": 6, "logged": [5, 8, 12, 14], "logging": [2, 12], "logging_level": 2, "logic": [2, 5, 6, 12, 14, 15], "logical": 11, "login": [0, 2, 3, 4, 5, 6, 8, 11, 12, 14], "logout": [0, 8, 12], "logs": [2, 5, 6], "loj": 6, "long": [0, 2, 6, 11, 15], "longtext": 6, "look": [5, 6, 7, 11, 12], "looking": 3, "looks": [2, 6, 11], "lookup": [5, 7], "lookups": 11, "loop": [6, 8, 15], "looping": 6, "loops": 15, "los": [2, 4, 6, 11], "lost": [5, 14], "lot": [4, 6], "lots": 1, "loved": 0, "low": [0, 11], "lowercas": 11, "lowest": 11, "lru": 5, "lt": 9, "lts": 2, "luc": [0, 1], "lug": [1, 5, 6], "lumin\u00e1r": 4, "l\u00e1": [2, 4], "l\u00edngu": 1, "m": [0, 2, 6, 9, 11], "mac": [2, 6], "macac": 5, "macneiln": 2, "mad": [8, 11, 13], "magically": 0, "mai": 5, "mail": [2, 3, 5, 11, 12], "mailing": 6, "mailt": 11, "main": [1, 2, 3, 4, 6, 8, 13, 14, 15], "maintain": [6, 8, 15], "maintainability": 6, "maintainabl": 13, "maintenanc": 15, "maior": [6, 7], "mai\u00fascul": 6, "major": 6, "mak": [0, 1, 2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "makefil": 2, "making": [6, 8], "man": 15, "manag": [2, 3, 4, 5, 6, 12, 15], "managed": 0, "management": 11, "managing": 6, "mandatory": [5, 8], "maneir": [5, 6, 13], "manipul": 6, "manipulat": 11, "manipulated": 11, "mann": 14, "manual": [2, 3, 4, 6], "manually": [2, 4, 6, 9, 12, 13], "many": [0, 1, 2, 4, 5, 7, 8, 11, 13, 14, 15], "map": [4, 6, 9, 10], "map_non": 6, "mapping": [2, 6, 11, 14], "maps": [6, 9], "marc": [1, 6, 9, 12], "marca\u00e7\u00e3": 9, "margin": [8, 15], "marked": 6, "massim": [0, 6], "mast": [1, 2, 13], "match": [2, 5, 6, 8, 9, 10, 11], "matched": [4, 7, 9, 11], "matching": [7, 9, 11], "matem\u00e1t": 6, "material": 6, "math": 15, "matriz": 9, "matters": 14, "max": [10, 11, 15], "max_concurrent_runs": 15, "maximum": [5, 11], "maxip": 11, "maxlen": 11, "maxsiz": 11, "may": [2, 4, 5, 6, 8, 9, 11, 14, 15], "md": 1, "md5": 11, "mean": 14, "meaning": [6, 11, 12], "meanings": 11, "means": [1, 2, 3, 5, 6, 8, 11, 12, 14], "mecan": [5, 6, 8], "mechanism": [0, 6, 8, 9, 12, 14], "med": 1, "mediant": 8, "mei": 6, "melhor": [0, 1, 6, 10, 13, 16], "memb": [11, 12], "membership": [0, 5, 11, 12, 14], "memberships": 5, "membr": 12, "memcach": [0, 6], "memoiz": 16, "memory": [5, 6], "men": [1, 2, 5, 6], "menor": 6, "mensag": 13, "mensagens": [5, 6], "ment": 1, "mention": 5, "mentioned": [12, 15], "menu": [8, 11, 12], "menus": [8, 11], "mes": [6, 9], "mescl": 6, "mesm": [0, 1, 2, 4, 5, 8, 9, 10, 13], "messag": [2, 4, 5, 7, 8, 11, 13, 14, 15], "messed": 1, "mestr": 6, "met": [6, 8, 9], "metad": 6, "metadat": 6, "metatag": 9, "method": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "methods": [5, 7, 9, 11, 12, 13, 16], "mfa": 12, "micah": 0, "microsoft": [1, 12], "mid": 6, "middlewar": 5, "might": [7, 11], "migr": 6, "migrate_enabled": 6, "migrated": 6, "migrating": [6, 14], "migration": 6, "migrations": 6, "migra\u00e7\u00f5": 16, "min": [8, 11, 13], "min_length": 11, "mind": [4, 6, 7, 8, 11], "mindful": 6, "minimal": [5, 13, 16], "minimalist": [8, 14], "minimalist_pag": 8, "minimum": 11, "minip": 11, "minor": [8, 14], "minsiz": 11, "minut": 11, "min\u00fascul": 6, "missing": [2, 12, 13], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 13], "mm": 11, "mobili\u00e1ri": 5, "mod": [2, 4, 5, 6, 11, 12], "model": [0, 3, 7, 9, 11, 14, 15], "models": [4, 6, 7, 13, 14], "modern": [6, 12, 15], "modifi": 13, "modific": [2, 4], "modifications": 2, "modified": [4, 11, 14], "modified_by": 6, "modified_on": 6, "modifiers": 7, "modify": [11, 13, 15], "modifying": [2, 8], "modindex": 16, "modul": [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14], "moment": [2, 6], "mong": 6, "mongodb": 6, "mongodbadapt": 6, "monoespac": 9, "monolithic": 0, "mont": 12, "month": 11, "mor": [0, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "moreov": 15, "most": [0, 4, 5, 6, 11, 12, 13, 14, 15], "mostr": [1, 4, 6, 13], "moth": 6, "mother_id": 6, "motor": 6, "mov": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 5, 6, 8, 11, 13, 14, 15], "mud": [4, 5, 6], "mudanc": 6, "muit": [0, 1, 4, 5], "mult": [1, 2, 6, 14], "multicast": 11, "multipl": [1, 2, 6, 8, 9, 11, 14, 15, 16], "multiprocess": 5, "multiselect": 11, "multius": 12, "must": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 14], "my": [5, 8, 9, 11, 12, 15], "my_app": 4, "my_id": 15, "my_password_fil": 2, "my_task": 15, "my_url_path": 14, "my_var": [5, 9], "myapp": [2, 4], "myclass": 9, "mycomponent": 15, "mycustomwidget": 11, "mydb": 6, "myerrors": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunction": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myord": 6, "myquery": 6, "myrecord": 6, "mysaltvalu": 11, "myset": 6, "mysideb": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyle": 11, "mytabl": 6, "myvalu": 6, "myvirtualfields": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "m\u00e1quin": [6, 9], "m\u00e1x": 6, "m\u00e1xim": 6, "m\u00e9d": 6, "m\u00e9di": 12, "m\u00e9tod": [4, 5, 6, 8, 13], "m\u00ednim": [5, 6], "m\u00f3dul": [0, 2, 5, 6], "m\u00faltipl": [0, 6], "n": [5, 6, 10, 15], "nad": [2, 4, 6], "nam": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "named": 9, "nameonly": 6, "naming": 6, "nasc": 6, "natal": 6, "nativ": 6, "native_json": 11, "nav": 8, "navb": [8, 12], "naveg": 13, "navigat": 15, "navigation": [8, 15], "ndb": 6, "ne6fz": 8, "necess": [1, 2, 4, 5, 6, 8], "necessary": [6, 8, 9], "necessit": 6, "necess\u00e1r": [1, 5, 6], "necess\u00e1ri": [2, 4, 5, 6], "neck": 15, "need": [0, 1, 2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "needed": [2, 4, 5, 6, 9, 11, 12, 15], "needs": [0, 4, 5, 6, 12, 14, 15], "neg": 6, "negated": 6, "negativ": [6, 11], "nega\u00e7\u00e3": 6, "neith": 11, "nel": 6, "nenhum": [6, 12], "ness": 6, "nest": [1, 6, 8, 9], "nested": [6, 8], "nested_select": 6, "network": [11, 12], "networks": [11, 12], "nev": [6, 8, 11, 14, 15], "new": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "new_app": [8, 9], "new_password": 15, "new_sidec": 15, "newlin": [6, 11], "newly": 6, "next": [1, 5, 6, 8, 11, 15], "nginx": 2, "nic": [0, 15], "nicozanf": 2, "nid": 6, "niss": 6, "no_backslash_escap": 6, "no_tabl": [11, 15], "nod": [4, 15], "nom": [2, 4, 5, 7, 9, 11, 12, 13], "nomeaplic": 12, "non": [2, 4, 5, 6, 7, 9, 11, 13, 14, 15], "nor": [2, 11], "norm": 6, "normal": [4, 5, 6, 8, 11, 13, 15], "normaliz": 6, "normalized": 6, "normally": [2, 6, 8, 9, 11, 13], "northwind": 1, "nosqladapt": 6, "noss": [1, 4, 5, 6], "not": [0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15], "not_accepted": 11, "not_authorized": 12, "notation": 9, "nota\u00e7\u00e3": [6, 9], "noted": 8, "nothing": [2, 5, 6, 11, 15], "notic": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "notnull": 6, "notset": 2, "nov": [0, 1, 2, 3, 4, 13], "novaaplicaca": 4, "now": [0, 4, 5, 6, 11, 13, 15], "nowadays": 1, "nul": 6, "null": [6, 7, 11, 15], "numb": [2, 5, 6, 8, 11], "number_workers": 2, "numbers": 11, "numerical": 11, "num\u00e9r": 6, "nunc": [5, 6], "n\u00e3": [0, 1, 2, 3, 4, 5, 6, 8, 9, 12, 13], "n\u00edvel": [6, 10], "n\u00famer": [4, 6, 10, 13], "oauth": 12, "oauth2": [0, 5], "oauth2discord": 12, "oauth2facebook": 12, "oauth2googl": 12, "obj": [6, 8], "object": [0, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16], "objects": [0, 4, 5, 6, 9, 11, 13, 14, 15], "objet": [0, 5, 6, 8, 9, 10], "obras": 6, "obrigat\u00f3ri": 6, "observ": [4, 6, 8], "obsolet": 6, "obtain": [2, 12, 15], "obtained": 6, "obter": [4, 6], "obtid": [2, 6], "obvi": 6, "obvious": [7, 8, 12], "obviously": 11, "ocasional": 6, "occasionally": 11, "occur": [2, 11, 15], "occurring": 2, "occurs": 11, "ocorr": [4, 6, 8], "ocult": [6, 11], "odd": [6, 8], "of": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "off": [0, 2, 4, 13, 15], "official": [0, 11, 15], "offs": 6, "offset": [6, 7], "oficial": 6, "often": [6, 12, 15], "ok": [9, 14], "old": [2, 5, 11, 14], "older": 11, "olhand": 6, "ol\u00e1": 8, "ombott": [0, 4, 14], "omit": 2, "omitted": 2, "on": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15], "on_delete_action": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "once": [1, 2, 5, 6, 11, 12, 15], "onclick": 15, "onde": [2, 6, 7, 8, 11], "ondelet": 6, "one": [0, 2, 4, 5, 6, 7, 8, 11, 12, 13, 15], "ones": [2, 7, 11, 14], "onion": 5, "onkeydown": 15, "onlin": [1, 6], "onload": 15, "only": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "onvalidation": 11, "opacity": 15, "opcion": [6, 9], "opcional": [4, 6, 9, 11], "open": [1, 2, 4, 5, 6, 9], "opening": 5, "oper": [0, 3, 10, 16], "operat": 11, "operation": [6, 12], "operationalerror": 11, "operations": [5, 6], "operator": [5, 6, 11], "oposi\u00e7\u00e3": 9, "opost": 6, "opposit": 5, "oprow": 6, "optimized": 6, "option": [2, 3, 5, 6, 11, 12, 15], "optional": [2, 5, 6, 7, 8, 11, 12, 13, 14], "optionally": [0, 2], "options": [2, 6, 7, 9, 12, 14, 15], "opt\u00e1m": 6, "op\u00e7\u00e3": [3, 4, 6, 8, 9], "op\u00e7\u00f5": [6, 16], "or": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "oracl": 6, "oracleadapt": 6, "ordem": 6, "order": [1, 2, 4, 5, 6, 7, 9, 11, 13, 14], "order_it": 6, "orderby": [11, 12, 13, 15], "ordered": 9, "ordereddict": 6, "org": [2, 4, 7, 9, 15], "organiz": 6, "organized": 4, "orig": [2, 10], "origin": 6, "original": [6, 8, 9, 11], "other": [0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15], "other_pag": [11, 15], "otherfield": 6, "others": [0, 6, 14], "othertabl": 6, "otherwis": [5, 6, 8, 11, 12, 13], "otimiz": 6, "oufil": 6, "our": [0, 1, 2, 5, 6, 9, 11, 15], "out": [0, 1, 2, 5, 8, 11, 15], "outlined": [4, 5], "output": [1, 2, 5, 8, 11, 15], "output_styl": 4, "outr": [1, 2, 4, 5, 9, 10, 12, 13, 16], "outsid": [0, 5, 6, 11, 13, 14, 15], "ov": 6, "over": [8, 13, 15], "overkill": 12, "overrid": [4, 6, 8, 12, 13, 14, 15], "override_cl": 13, "override_styl": 13, "overriding": 15, "overview": 16, "overwritten": [5, 14], "own": [4, 5, 6, 8, 11, 12, 13, 14, 15], "owner": [6, 11], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "owners": 11, "ownership": 6, "owns": 6, "p": [2, 8, 11], "p10n": 10, "packag": [0, 6, 9], "padded": [8, 14], "padding": 15, "padroniz": 6, "padr\u00e3": [0, 2, 4, 5, 8, 9, 13], "padr\u00f5": [4, 6, 9], "pag": [1, 3, 4, 5, 6, 9, 11, 12, 13, 14, 15, 16], "page_head": 8, "page_left_menu": 8, "page_scripts": 8, "pagin": [6, 13], "pai": 6, "painel": [0, 2, 3], "paint": [4, 11], "painting": 4, "pairs": 9, "palavr": [8, 9, 10], "pam": [0, 5], "pam_plugin": 12, "pamplugin": 12, "papel": 2, "par": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 15, 16], "paragraph": [5, 9, 11, 13], "paramet": [1, 2, 4, 5, 6, 12, 13, 15], "parameters": [2, 6], "params": 15, "parec": [5, 6], "parent": [2, 6, 8, 15], "park": [7, 13], "pars": [5, 6, 11, 12], "parsed": 6, "parsemodul": 4, "part": [4, 9, 14], "partial": [4, 6, 14], "particip": 6, "participat": 1, "particul": [0, 1, 6, 11, 13, 14, 15], "particular": 6, "particularly": 6, "parts": 11, "party": [0, 5], "par\u00e1graf": [1, 9], "par\u00e2metr": [5, 13], "par\u00eantes": 6, "pass": [4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "passed": [2, 4, 5, 6, 9, 11, 12, 13, 15], "passing": [5, 6, 9], "passphras": 5, "password": [2, 6, 8, 11, 12, 14, 15], "password_fil": 2, "passwords": 11, "passwordwidget": 11, "past": [2, 4], "path": [2, 4, 5, 6, 7, 10, 11, 13, 14, 15], "path_t": 2, "pattern": 7, "patterns": 7, "paus": 2, "payment": 6, "payroll": 5, "pbkdf2": 11, "pc": 3, "pdf": [1, 11], "pdkdf2": 2, "pec": [5, 6], "ped": [2, 4, 5, 6, 13], "pedac": 8, "peg": 6, "pegadinh": 16, "pel": [1, 4, 5, 6, 8, 9, 10, 12], "pens": 6, "per": [5, 7], "percentual": 6, "perd": [1, 2, 6], "perfect": 0, "perfectly": 13, "perfil": [0, 12], "perform": [5, 6, 11, 12], "performanc": [0, 5, 6, 14], "performing": 6, "performs": 11, "pergunt": 6, "period": 15, "periodic": 15, "permanec": 6, "permission": [5, 12], "permissions": [0, 5, 6, 12, 14], "permiss\u00e3": [5, 6, 12], "permit": [0, 3, 5, 6, 8, 9, 12, 13], "permitted_tags": 9, "persist": 5, "persistent": [6, 12], "person": [6, 7, 11, 13], "personag": 6, "personagens": [4, 6], "personal": 2, "personaliz": [0, 2, 16], "persons": 11, "persons_and_things": 6, "perspectiv": 0, "pertenc": 6, "pertencent": 6, "pesquis": [2, 3, 6, 13], "pesso": 6, "pet": [6, 7, 13], "philip": 6, "phon": 11, "photograph": [7, 13], "physics": 12, "pick": [5, 12], "picked": 4, "picks": 5, "piec": [0, 11], "pierr": 0, "pip": [0, 1, 6], "pirsch": 0, "piscin": [4, 6], "piu": 5, "pixels": 11, "plac": [1, 5, 6, 8, 11, 13, 15], "placehold": [11, 15], "placeholders": 6, "placing": 13, "plan": [1, 15], "plataform": 16, "platform": [0, 1], "play": 15, "playing": 0, "pleas": [5, 6], "plug": 5, "plugin": [5, 11, 12, 13, 15], "plugins": [11, 15], "plural": 10, "pluraliz": [0, 4, 5, 13, 15, 16], "pluralization": 14, "plus": [8, 12, 13], "pm": 11, "png": [9, 11], "pod": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13], "point": [4, 5, 6, 11, 14, 15], "pointing": [2, 3, 8], "points": [6, 7, 11, 13], "polic": 16, "policy": 7, "pollut": 5, "pol\u00edt": 0, "pont": 6, "pool": 5, "pool_connection": 6, "pool_siz": [5, 6], "pooling": 6, "poor": 15, "pop": 15, "popul": [0, 6], "porqu": [2, 4, 5, 6, 8, 10], "port": [0, 2, 3, 5, 6, 14], "portability": 6, "portabl": 6, "portant": [2, 4, 5, 6, 9], "ports": 2, "por\u00e7\u00f5": 13, "posicion": 9, "position": 5, "positional": 9, "posi\u00e7\u00e3": [5, 9], "possibil": 6, "possibl": [4, 5, 6, 8, 11, 13, 14, 15], "possibly": 6, "poss\u00edv": 6, "poss\u00edvel": [4, 6], "post": [4, 6, 7, 9, 11, 12, 13, 14, 15], "post_action_buttons": 13, "post_text": 6, "post_vars": [7, 14], "post_writabl": 7, "posted": 7, "postel": 10, "posterior": 5, "postfix": 14, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyc": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserved": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocessing": 14, "posts": 6, "potentially": 2, "pouc": [5, 6], "pow": [2, 6, 15], "powerful": [7, 12, 14], "powers": 7, "pprint": 6, "pr": 1, "practic": [8, 11], "practical": [6, 11, 14, 16], "pre": [2, 4, 5, 13], "pre_action_buttons": 13, "precau\u00e7\u00e3": 2, "preced": [5, 6, 8], "preceded": [6, 11], "precedent": 6, "preceding": 7, "precious": 13, "precis": [1, 2, 4, 5, 6, 13], "predefin": 8, "predefined": 15, "predetermined": 14, "preench": 6, "preenchiment": 6, "pref": [2, 15], "prefer": 9, "preferenc": 5, "preferred": [5, 6], "prefix": [2, 4, 6, 7, 8, 11, 14], "preguic": 14, "prelimin": 1, "preocup": 6, "prepend": [11, 15], "prepend_schem": 11, "prepended": [11, 14], "prepending": 11, "prepends": 4, "preprocessing": 14, "prerequisit": [2, 5], "presenc": [5, 6], "present": [2, 6, 8, 11, 12], "preserv": [0, 5], "preserved": 5, "press": [4, 13], "pression": 3, "prest": 9, "pretend": 6, "pretty": [6, 14], "prevent": [6, 9, 11, 15], "prevented": 6, "preventing": 5, "prevents": [2, 5, 15], "previ": [6, 11], "previous": [5, 8, 9, 11, 15], "previously": [5, 6, 11], "prim": [5, 11], "primarily": 13, "primary": [6, 8, 12], "primeir": [6, 8, 12, 16], "princip": 0, "principal": [1, 5, 6, 16], "princ\u00edpi": [6, 16], "print": [4, 6, 9, 10, 12, 14, 15], "printed": 4, "privat": [5, 11], "probability": 11, "probl": [0, 6, 8, 13], "problem": [1, 6], "problems": [6, 12, 15], "proc": [12, 15], "proced": 16, "procedur": 2, "process": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "processed": [5, 6, 8, 11], "processing": [5, 6, 8, 11, 15], "procur": [1, 6], "produc": [6, 9, 11, 12], "product": [6, 11, 15], "product_nam": 11, "product_quantity": 11, "product_record": 15, "production": [2, 4], "products": 6, "produz": [2, 5, 6, 8, 9], "produ\u00e7\u00e3": 0, "professor": 12, "profil": [8, 12, 14], "progr": [1, 2, 3, 9], "program": [1, 3, 6, 8], "programmatically": 9, "programming": [1, 6, 8, 15], "programs": [1, 2, 11], "project": [0, 2, 4, 5, 6], "project_nam": 2, "projet": [0, 2], "prompt": [2, 4, 6], "pront": 6, "prop": [5, 6, 13], "properly": 4, "properti": [6, 11], "propriedad": 6, "propriet\u00e1r": 6, "propriet\u00e1ri": 6, "protocol": 3, "prototyp": 15, "prototyping": 11, "provavel": [4, 5, 6], "proveit": 6, "provid": [0, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "provided": [5, 6, 8, 9, 11, 13], "providing": [0, 13, 14], "provoc": 6, "prudent": 6, "pr\u00e1tic": [0, 6, 7], "pr\u00e9": [9, 13, 16], "pr\u00f3pr": [12, 13], "pr\u00f3pri": [6, 13], "pr\u00f3xim": [2, 6], "pseud": 6, "psycopg2": 6, "public": 4, "pud": 2, "pull": 1, "punycod": 11, "pur": 6, "purpos": [0, 6, 9, 11, 12, 14], "put": [5, 7, 11, 15], "put_writabl": 7, "putting": 4, "pux": 6, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15], "py4web": [2, 3, 4, 5, 7, 8, 9, 11, 12, 13], "py4web_filesyst": 6, "py4web_wsg": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15], "pyfilesyst": 6, "pyinstall": 2, "pymong": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytds": 6, "python": [0, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15], "python2": [2, 14], "python3": [1, 2], "pyweb": 14, "p\u00e1gin": [8, 9, 13, 16], "p\u00f3s": 13, "p\u00fablic": 6, "q": [2, 6, 13], "qua": [0, 6], "quadr": [0, 1, 6], "quaisqu": [6, 11], "qualified": 6, "qualqu": [1, 2, 4, 5, 6, 7, 8, 12], "quand": [1, 4, 6, 8, 13], "quant": 6, "quantity": [6, 11], "quebr": 0, "qued": 13, "queir": 5, "quer": [2, 4, 5, 6, 9], "queri": [6, 7, 13, 14, 15], "queried": 7, "query": [4, 5, 7, 9, 11, 13, 14, 15], "query1": 6, "query2": 6, "queryselector": 15, "queryselectorall": 15, "querystring": 13, "questions": [1, 2], "quest\u00e3": 6, "quick": [1, 11], "quickly": [2, 11, 13], "quiet": 2, "quirk": 5, "quis": [4, 6], "quit": [1, 2, 5, 7, 8, 11, 13], "quot": [2, 9], "quote_minimal": 6, "quote_nonnumeric": 6, "quotech": 6, "r": [2, 6, 11], "rac": 11, "radi": [9, 11], "radiowidget": 11, "radius": 15, "rais": [5, 11, 12, 14], "raised": 5, "ram": [5, 6], "randint": [8, 12], "random": [6, 8, 11, 12, 15], "rang": [4, 6, 8, 12, 14], "rapid": [0, 11, 15], "rar": 6, "rarely": 6, "rath": [6, 8, 11, 15], "raw": 16, "raz\u00f5": 6, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "rea": 6, "reach": 2, "react": 15, "reactivity": 15, "read": [1, 4, 5, 6, 7, 13, 15], "readability": 7, "readabl": [5, 6, 13, 14], "readm": [1, 11], "readonly": [2, 11, 15], "ready": 2, "reagrup": 0, "real": [2, 4, 7, 8, 11], "real_identity": [6, 7], "realiz": [3, 4, 5, 6], "really": [1, 4], "realment": 6, "reaping": 15, "reason": [2, 5, 6, 13, 14], "reasons": 7, "rebuilt": 6, "rec_id": 7, "receb": [6, 8], "recent": [2, 3, 6, 11, 13], "recently": 5, "recereived": 15, "recip": 2, "reclam": 6, "recogniz": 4, "recognized": 6, "recolh": [7, 13], "recomec": 6, "recomend": 6, "recommand": 15, "recommend": [1, 5], "recommended": [6, 11], "reconstru": 6, "record": [7, 11, 12, 14, 15], "record_id": [7, 15], "recorded": 11, "records": [6, 7, 11, 12, 13, 15], "recorrent": 6, "recovered": 11, "recup": 6, "recuper": [4, 6], "recurs": [2, 8, 16], "recursively": 8, "recycl": 6, "rec\u00e9m": [4, 6, 10], "red": [0, 3, 4, 6, 8, 9, 11, 16], "redefini\u00e7\u00e3": 6, "redesign": 0, "redirecion": [4, 12, 13], "redirect": [4, 5, 11, 12, 13, 15], "redirected": [5, 15], "redirection": [5, 11, 14], "redirects": [5, 12], "reduc": [0, 15], "reduced": 0, "redundant": 6, "reduz": 5, "reescrev": 6, "reescrit": 6, "ref": [3, 5, 6, 9, 11, 16], "refer": [6, 7], "referenc": [1, 5, 6, 7, 8, 9, 11, 13, 15], "referenced": [6, 7], "referenced_by": 7, "referencing": 6, "referim": 6, "referred": [6, 7], "refers": 7, "reflected": 1, "reflet": 6, "reforc": 6, "refresh": 13, "regex": [7, 9, 11], "regexlib": 11, "regist": [0, 5, 6, 8, 12, 13, 14, 15], "register_plugin": 12, "register_task": 15, "register_vue_component": 15, "registered": [5, 12], "registers": 5, "registr": [3, 4, 11, 12, 13], "registration": [4, 11], "registration_stamp": 11, "regr": [4, 5], "regul": [0, 2, 4, 6, 7, 8, 10, 11, 13, 14, 15], "reimplementation": 15, "reinic": 6, "reinstal": 2, "reinstall": 2, "reinstat": 6, "rejected": 11, "rejects": 11, "rel": [8, 13], "relacion": 6, "relat": 6, "related": [5, 6], "relational": 6, "relations": 16, "relationships": 6, "relativ": [4, 14], "rela\u00e7\u00e3": 9, "rela\u00e7\u00f5": 6, "releas": 2, "released": 0, "relev": 6, "reload": [2, 3, 4, 5, 11], "reloaded": [3, 4, 15], "reloading": [2, 4, 5], "reloads": [4, 5], "rely": [0, 4, 6], "rem": 5, "remain": [6, 11], "remains": 0, "rememb": [5, 6], "remembered": 5, "remote_addr": [5, 12], "remov": [2, 4, 6, 9, 11, 12], "removal": 11, "removed": [0, 6, 9, 11], "removing": 6, "remo\u00e7\u00e3": 6, "renam": 1, "rend": [5, 6, 11, 13, 14, 15], "rendered": [5, 7, 8, 11, 13, 14, 15], "rendering": [8, 9], "renderiz": 9, "renders": 11, "reno": 8, "renom": 7, "reopening": 5, "repackaging": 0, "repeated": 11, "repeti\u00e7\u00e3": 6, "replac": [6, 8, 9, 13, 15], "replaced": [8, 9, 11, 15], "replicat": [1, 5], "report": 8, "reported": 4, "repository": [1, 2, 3], "reposit\u00f3ri": 2, "repr_row": 6, "represent": [8, 9, 11], "representation": [6, 9], "representational_state_transf": 7, "represented": 11, "representing_field": 11, "represents": [0, 6], "requ": [0, 5, 6, 11, 12, 13, 14, 15], "request": [0, 1, 2, 5, 6, 7, 11, 12, 13, 14, 15], "request_reset_password": 12, "requests": [1, 4, 5, 14], "requir": [2, 5, 6, 11, 12], "required": [4, 5, 6, 7, 11, 15], "requirement": 11, "requirements": [0, 2, 11], "requires_": 14, "requires_login": 14, "requires_membership": 5, "requiring": [2, 14], "requisit": [6, 16], "res": 15, "reserv": 10, "reserved": [6, 11], "reset": 6, "reset_password": 12, "resgat": 6, "resourc": [6, 12], "respect": [6, 11, 13], "respectively": [6, 11], "respons": [4, 5, 6, 8, 14, 15, 16], "responsibility": 6, "responsibl": [13, 15], "respost": [5, 8], "ressalv": 6, "restabelec": 6, "restap": [0, 3, 16], "restart": [2, 4, 5, 6, 13], "restaur": 6, "restful": [7, 12], "restrict": [5, 7, 11, 15], "restri\u00e7\u00e3": 6, "restri\u00e7\u00f5": [0, 6], "restructuredtext": 1, "result": [1, 4, 6, 7, 8, 11, 13, 15], "resulting": [8, 11, 15], "results": [6, 8, 11, 13], "ret": 6, "retain": 6, "retorn": [5, 8, 9], "retribu": 9, "retriev": [5, 6, 15], "retrieval": 6, "retrieved": 14, "return": [4, 5, 6, 7, 9, 11, 12, 13, 15], "returned": [5, 6, 7, 8, 9, 11, 15], "returning": 5, "returns": [5, 6, 7, 9, 11, 12, 14, 15], "reutiliz": [2, 6], "revers": [5, 6], "revers\u00e3": 4, "revert": 6, "rfc": 11, "rid": 6, "riding": 8, "right": [5, 6, 8], "rights": 2, "road": 15, "robust": 15, "rocket": 14, "rocket3": [2, 14], "rocketserv": 2, "rodap": 9, "rol": [5, 9], "roll": 6, "rollback": 15, "rolls": 5, "root": [6, 8, 12, 13], "rosc": 5, "rot": [3, 13], "rotul": 6, "rout": [2, 5, 13, 14, 15], "routing": [0, 2, 4, 14], "rov": 6, "row": [11, 13, 15], "rows": [9, 11, 13, 14], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 13, "rpc": 6, "rst": 1, "rul": [8, 11, 13], "run": [1, 3, 4, 6, 8, 12, 15], "run_in_transaction": 6, "running": [1, 2, 5, 15], "runs": [2, 4, 12, 14, 15], "r\u00e1di": 9, "r\u00e1p": [0, 6], "r\u00f3tul": [6, 9, 13], "s": [0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15], "s3": 6, "s_": [11, 15], "s_autocomplet": 15, "s_autocomplete_results": 15, "s_down_key": 15, "s_search": 15, "sab": [1, 2, 6, 8], "saf": [1, 6, 11, 13, 14], "safar": 15, "safely": [1, 13], "safety": 15, "said": 7, "sair": 12, "sak": 6, "salt": [1, 11], "salv": [4, 6, 10], "sam": [0, 2, 5, 6, 7, 8, 11, 12, 14, 15], "same_sit": 5, "saml": 12, "saml2": 0, "sampl": 12, "san": 4, "sandbox": 15, "sanitiz": [5, 9, 14], "sant": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "sav": [1, 5, 6, 10, 11], "saved": [2, 5, 6, 11], "say": 12, "sa\u00edd": [2, 4, 6, 8, 9], "scaffold": [2, 4, 15], "scaffold_zip": 2, "scaffolding": [2, 4, 5, 6, 8, 11, 14, 15], "scal": [5, 8], "scan": 6, "schaf": 1, "schdul": 15, "schedul": 16, "scheduled": 15, "scheduled_for": 15, "schem": [6, 11], "school": 12, "scor": 15, "score_input": 15, "scratch": 4, "script": [2, 5, 8, 15], "scripting": 9, "scripts": [2, 8, 9], "sdk": 2, "seamlessly": 8, "search": [0, 6, 11, 12, 13, 16], "search_button_text": 13, "search_form": 13, "search_queri": 13, "search_text": 13, "search_valu": 15, "searchabl": 6, "searched": [9, 13], "searching": [6, 9], "second": [6, 9, 11, 12, 14], "seconds": [5, 11], "secret": [5, 12], "secs": 15, "section": [2, 4, 6, 8, 11, 12], "sections": 6, "secur": [0, 11], "securely": 2, "security": [0, 7, 12], "see": [0, 1, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15], "seem": 6, "seen": [0, 5, 7, 9, 11, 13, 15], "seg": 4, "segment": 4, "segred": 12, "segu": [2, 4, 5, 6, 8], "seguint": [2, 4, 5, 6, 8, 9, 10, 11, 12, 13], "segund": 6, "segur": [0, 5], "seguranc": [2, 5, 6, 9], "seis": 6, "sej": [4, 6], "seleccion": 6, "selecion": [3, 6], "select": [4, 7, 10, 11, 12, 13, 14, 15, 16], "selected": [3, 4, 7, 9, 11, 15], "selected_elements": 15, "selectedindex": 15, "selecting": 6, "selection": 11, "selections": 11, "selector": [9, 15], "selector1": 9, "selector2": 9, "selectorn": 9, "selectwidget": 11, "selec\u00e7\u00e3": 6, "sele\u00e7\u00e3": [6, 9], "self": [2, 5, 6, 9, 11, 13, 15], "semantic": [11, 12], "semelh": [0, 4, 5, 6, 9], "sempr": [6, 8], "send": [2, 6, 11, 12], "send_two_factor_email": 12, "sends": 12, "senh": [0, 2, 3, 5, 6, 12], "sens": [0, 11], "sensitiv": [5, 11], "sens\u00edvel": 6, "sent": [5, 6, 12, 15], "sen\u00e3": 6, "separ": [6, 13], "separat": [6, 11, 12, 15], "separated": [2, 5, 6, 13, 15], "separating": [8, 11], "separator": 11, "sequenc": [5, 6], "sequencial": 6, "sequ\u00eanc": 6, "seq\u00fcenc": 6, "seq\u00fc\u00eanc": 6, "ser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "seri": 1, "serializ": [4, 6, 8, 9], "serializabl": [0, 5, 6], "serialized": [5, 6, 9, 11], "serv": [0, 2, 3, 4, 7, 8, 12, 14, 15, 16], "served": [2, 6], "server_addr": 6, "servers": [2, 6], "serversid": 15, "servidor": [0, 4, 5, 6], "serving": 15, "ser\u00e3": [4, 6, 9], "session": [0, 2, 4, 6, 9, 11, 12, 13, 14, 15, 16], "session_app1": 5, "session_secret_key": 5, "sessions": [0, 6, 14], "sess\u00e3": [4, 16], "sess\u00f5": 5, "set": [0, 2, 5, 7, 8, 9, 10, 13, 14, 15], "set_attribut": 6, "set_encoding": 6, "set_head": 6, "set_password": 3, "setinterval": 15, "sets": [2, 5, 6, 11], "setting": [2, 4, 5, 6, 11, 13], "settings": [1, 4, 5, 6, 9, 12, 14, 15], "setup": [1, 3, 4, 12, 15], "setvirtualfields": 6, "severity": 6, "se\u00e7\u00e3": 6, "se\u00e7\u00f5": 6, "sf": 15, "sftp": 6, "sh": 15, "sha512": [8, 11], "shar": [5, 6, 14], "shared": 5, "shell": 9, "ships": 8, "sho": 6, "shopping": 5, "short": [11, 15], "shortcut": [6, 8, 11], "should": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "show": [2, 5, 6], "show_id": 13, "showed": 12, "showing": 13, "shown": [2, 6, 11, 12], "shows": [4, 8, 11, 12], "shutil": 6, "si": [6, 13], "sid": [6, 15, 16], "sideb": 8, "sidebar_enabled": 8, "sidebar_menu": 9, "sidec": 15, "sign": [5, 8, 12], "signatur": [5, 6, 7, 9, 11], "signed": [2, 5, 11], "signed_url": 5, "signif": [5, 6, 7], "signific": [6, 8], "significant": 8, "signing": 5, "signing_inf": 11, "signs": 5, "sim": 6, "simbol": 2, "simb\u00f3l": 4, "simil": [0, 11, 14], "similar": [6, 9], "similariti": 14, "simpl": [1, 2, 4, 5, 6, 7, 8, 9, 11, 13, 15, 16], "simple_query": 15, "simples": [4, 6, 10], "simplest": 2, "simplicity": [6, 15], "simplific": 6, "simplified": [0, 4, 8], "simply": [2, 4, 5, 6, 8, 11, 15], "simultan": 6, "simult\u00e2n": 6, "sinal": 6, "sinc": [0, 4, 5, 7, 8, 11, 13, 14], "singl": [2, 5, 6, 7, 8, 11, 12, 13], "singleton": [5, 14], "sintax": [4, 6, 9, 12, 16], "sint\u00e1t": 5, "sistem": [0, 2, 5, 6], "sit": [1, 2, 4, 5, 6, 9, 13, 15], "situa\u00e7\u00e3": 6, "siz": [5, 8, 11], "skip": 15, "slash": [1, 4, 5, 12], "sleep": 15, "sleep_tim": 15, "slick": 0, "slow": [6, 15], "slug": 11, "small": [5, 11], "snippets": 6, "so": [2, 5, 6, 8, 9, 11, 12, 13, 14, 15], "soap": 9, "sob": [4, 6], "sobr": [0, 8], "sobrecarg": 6, "sockets": 15, "solicit": [0, 6], "solt": 6, "solution": [0, 2, 15], "solu\u00e7\u00e3": [1, 6], "som": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15], "some_condition": 8, "some_form": 11, "some_valu": 6, "somefield": 6, "somefil": 6, "soment": [2, 4, 6, 8], "somepath": 5, "sometabl": 6, "something": [6, 7, 8, 9, 11, 15], "sometim": [6, 8, 9, 11], "somevalu": 6, "somewhat": 11, "somewher": 6, "soon": [8, 15], "sophisticated": 14, "sort": 11, "sorted": 13, "sorting": 11, "sourc": [1, 2, 3, 4, 6, 11, 15], "source1": 11, "south": 1, "sp": 6, "spac": [6, 8, 11, 13], "span": [4, 14], "spatialit": 6, "speaking": 5, "special": [0, 5, 6, 8, 12, 14, 16], "specialization": 6, "specials": 11, "specific": [2, 5, 6, 8, 9, 11, 12, 14, 15], "specifically": [5, 6, 11, 15], "specifications": 7, "specified": [5, 6, 8, 9, 11, 12, 13, 14, 15], "specify": [2, 4, 5, 6, 7, 11, 12, 13, 15], "specifying": 9, "speed": [7, 8], "sphinx": 1, "spiderman": [7, 13], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 11], "split_emails": 11, "sql": 16, "sql_mod": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 11, 14], "sqlforms": 11, "sqlit": [1, 5, 7, 12, 13, 15], "sqlite3": 6, "sqliteadapt": 6, "squar": 8, "src": [5, 6, 8, 9, 15], "ss": 11, "ssl": 2, "ssl_cert": 2, "ssl_key": 2, "sslcert": 6, "sslkey": 6, "sslmod": 6, "sslrootcert": 6, "sso_id": [5, 12], "stabl": 2, "stand": 11, "standard": [1, 2, 3, 6, 7, 12, 13, 14, 15, 16], "standards": [11, 13], "stands": 9, "start": [1, 2, 3, 4, 5, 6, 9, 11, 12, 13, 15], "start_impersonating": 12, "started": 15, "starting": [2, 4, 6, 11], "starts": [0, 3, 5, 8, 14], "startup": [6, 14], "stat": [5, 7, 14, 15], "stated": 5, "stateful": 5, "stateless": [5, 15], "statement": 8, "statements": [8, 11], "static": [1, 4, 8, 9, 14], "static_dev": 4, "status": 7, "stderr": [2, 15], "stdout": [2, 15], "steil": [0, 1, 13], "step": [12, 14], "step1": 5, "step2": 5, "step3": 5, "step_completed": 5, "stepping": 15, "steps": 2, "still": [5, 6, 9, 11, 13, 14], "ston": 13, "stop": [2, 12], "stop_impersonating": 12, "stor": [5, 6, 11, 12], "storag": [5, 6, 7, 13], "stored": [0, 5, 6, 11, 12, 14, 15], "stored_it": 6, "stored_item_archiv": 6, "storing": 5, "story": 0, "str": [2, 5, 6, 9, 14, 15], "stre": [5, 6], "streaming": [4, 14], "strength": 7, "strict": 11, "strictly": [4, 15], "string": [4, 5, 6, 7, 9, 10, 11, 13], "stringi": 6, "stringlistproperty": 6, "strings": [9, 11, 13], "strip": 11, "stripped": [2, 14], "strong": [0, 9, 12], "strongly": [1, 5, 11, 13], "structur": [1, 4, 6, 12, 13, 14, 16], "stuck": 2, "students": 2, "studi": 1, "study": 1, "stuff": [11, 13], "style": [4, 6, 8, 11, 15, 16], "styles": 13, "stylesheet": [8, 13], "styling": 13, "sub": 6, "subcl": 6, "subclassing": 11, "subconjunt": [0, 6], "subfold": 6, "subfolders": [5, 6], "subheadings": 9, "subject": [6, 7, 12], "sublinh": 6, "submet": 11, "submission": [11, 15], "submit": [1, 5, 6, 9, 11, 13], "submitted": 15, "submitting": 12, "subm\u00f3dul": 0, "subnet": 11, "subnets": 11, "subpast": 4, "subqueri": 15, "subset": 11, "subse\u00e7\u00e3": 6, "substitu": [0, 2, 6, 8, 9], "substitui\u00e7\u00f5": 13, "substitutions": 8, "substitu\u00edd": 6, "substring": [6, 11], "succeeded": 0, "success": [5, 7, 15], "successful": [0, 12], "successfully": 12, "suced": 6, "sucess": [4, 6], "such": [6, 9, 11, 13, 14], "sud": [2, 12], "suffered": 0, "suffers": 12, "suficient": [6, 13], "suger": [1, 6], "sugest\u00f5": 16, "suggest": [1, 11], "sugiz": 0, "sup": 7, "super": 6, "superher": [6, 7, 11, 13, 15], "superhero": 7, "superior": 10, "superman": [6, 7, 11, 13], "superpotent": 7, "superpow": [6, 7], "superseeded": 6, "supond": [2, 6], "suponh": 6, "supor": 6, "suport": [0, 10, 16], "supplied": 9, "support": [1, 2, 6, 11, 14], "supported": [10, 11, 12], "supporting": 15, "supports": [4, 5, 8, 9, 11, 15], "suppress": 2, "suprim": 9, "sur": [5, 11, 12, 15], "surely": [3, 4], "surrounding": 11, "susan": 6, "sutil": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 11, "symbols": 11, "sync": [2, 6], "synops": 11, "syntactic": 11, "syntax": [0, 1, 4, 5, 6, 7, 8, 9, 11, 14, 15], "system": [0, 2, 5, 6, 9, 12, 15], "systems": 15, "sysus": 6, "s\u00e3": [0, 1, 3, 4, 5, 6, 8, 9, 10, 12, 13], "s\u00e9ri": 6, "t": [0, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14], "t_fold": 5, "tab": [3, 5, 11], "tabel": [5, 9, 12, 13, 14], "tabl": [5, 7, 11, 12, 13, 14, 15, 16], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 11, 15], "tag": [0, 6, 7, 8, 12, 14, 15], "tag_input": 15, "tagg": 9, "tagged_db": 12, "tagged_nam": 12, "tagging": [9, 12], "tags": [0, 5, 6, 8, 9, 14, 15, 16], "tags_input": 15, "tags_inputs": 15, "tail": 6, "tais": 6, "tak": [2, 3, 5, 6, 8, 11, 12, 13, 15], "taken": 11, "tal": 6, "talvez": [2, 5], "tamanh": 6, "tampering": [5, 6], "tant": [6, 15], "tantissim": 10, "tar": 11, "tard": [4, 6], "taref": [1, 5, 6, 12], "target": [9, 15], "task": 15, "task_run": 15, "tasks": [6, 15], "tast": 6, "tbody": 6, "tcp": 3, "td": 6, "teach": 12, "technically": 15, "tecl": [6, 10], "tell": [4, 12, 15], "telling": [2, 12], "tells": [5, 15], "temp": [2, 8], "templat": [0, 4, 9, 11, 12, 14, 15, 16], "temporarily": 5, "tempor\u00e1ri": 6, "ten": 11, "tenancy": 6, "tenh": [1, 5, 6], "tent": [5, 6], "ter": [2, 4, 5, 6, 9], "teradat": 6, "teradataadapt": 6, "terceir": 6, "tered": 11, "term": 6, "termin": 9, "terminal": 4, "terminat": [8, 15], "terms": 11, "terr": 6, "ter\u00e3": 6, "test": [2, 6, 8, 9, 11, 13], "tested": [0, 2, 9, 12], "testing": [4, 6], "text": [2, 5, 6, 8, 9, 13, 15], "textar": 11, "textareawidget": 11, "textual": 9, "th": 6, "than": [0, 5, 6, 8, 9, 11, 12, 13, 15], "thank": 9, "thanks": 0, "that": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "that_templat": 8, "the": [0, 3, 8, 9, 10, 12, 14, 16], "thead": 6, "them": [0, 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14], "themselv": [6, 8], "then": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "ther": [1, 2, 5, 6, 8, 11, 12, 13, 14, 15], "therefor": [4, 5, 8, 11, 14], "thes": [2, 4, 5, 6, 8, 9, 11, 13, 15], "they": [2, 4, 5, 6, 7, 8, 11, 12, 14, 15], "thing": [5, 6, 11, 14], "thing_id": 11, "thing_tags_default": 6, "things": [2, 5, 6, 11], "think": [5, 8, 13, 15], "third": [0, 5, 11], "this": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "this_templat": 8, "thisisatest": 9, "thisisthekey": 11, "thos": [5, 6, 8, 9, 12, 14, 15], "though": 8, "thought": [0, 6, 12], "thre": [0, 5, 6], "thread": [6, 14, 15], "threaded": [2, 14], "threads": [5, 6], "threadsafevariabl": 5, "through": [2, 11], "throughout": 5, "thumbnail": 11, "ti": 5, "ticket": 6, "tickets_only": 2, "til": 6, "tim": [0, 4, 5, 6, 8, 13, 14, 15], "timed": 6, "timedelt": 11, "timeoffset": 9, "timeout": [5, 15], "timeouts": 15, "timestamp": [5, 7, 15], "tint": 4, "tip": [4, 13], "tips": [2, 13], "tir": 6, "titl": [8, 11, 15], "tiv": 6, "tmp": [5, 6], "to": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15], "tod": [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15], "today": [0, 11, 15], "togeth": [0, 8], "token": [5, 11], "tom": 6, "too": [2, 5, 6, 11, 15], "took": 6, "tool": 0, "tools": [6, 12, 15], "top": [8, 11, 12], "topics": [13, 16], "torn": [1, 2, 5, 6, 9, 13], "total": [1, 6, 7], "total_pric": 6, "touch": 8, "toy": 6, "tr": 6, "trabalh": [2, 4, 6, 7], "traceback": 6, "tracebacks": 5, "track": [1, 14], "trad": 6, "tradicion": 6, "tradicional": 6, "traditional": 2, "tradutor": 4, "traduz": [1, 6, 8, 10], "tradu\u00e7\u00e3": [5, 16], "tradu\u00e7\u00f5": [5, 10], "trailing": [2, 11], "training": 1, "transaction": [5, 6], "transactions": 6, "transational": 15, "transa\u00e7\u00f5": 6, "transform": [4, 5, 6, 11, 15], "transformed": [5, 6], "transforms": 5, "transitions": 15, "translat": 15, "translated": [5, 8, 11], "translation": [11, 14], "translations": [5, 10, 15], "translator": [2, 10, 16], "transmit": 3, "transparent": [6, 8, 11], "transparently": 8, "trapped": 15, "trat": [4, 6], "tre": [8, 11], "treated": [6, 14], "tri": [6, 14], "trickery": 8, "tricks": 2, "tried": 0, "trigg": [6, 15], "triggers": 5, "trivial": [5, 6], "tru": [1, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "trunc": 6, "truncat": 6, "truth": 15, "try": [2, 5, 6, 8, 11, 12, 15], "trying": [1, 12], "tr\u00e1s": 6, "tr\u00eas": 6, "ttl": 5, "tud": [5, 6], "tupl": [6, 8, 9], "turn": [12, 13, 15], "turned": 0, "turns": [6, 15], "tutorial": [1, 2, 4, 13, 15], "tutorials": 1, "twic": [5, 6], "twitt": [0, 5, 12], "two": [1, 2, 4, 5, 6, 8, 11, 13, 14, 15], "two_factor": 12, "two_factor_filt": 12, "txt": [0, 2, 4, 6], "type": [2, 5, 7, 8, 9, 12, 15], "types": 11, "typical": [5, 6, 11], "typically": [4, 8], "typs": 11, "t\u00eam": [2, 4, 6, 12], "t\u00edpic": 6, "t\u00edtul": [3, 9, 13], "t\u00f3pic": 6, "u": [2, 6, 9], "ubuntu": 12, "uc": 1, "ui": 12, "uid": 6, "ul": [8, 11, 12, 15], "un": [8, 9, 10, 15], "unauthenticated": [5, 6, 9], "unauthorized": 6, "unchanged": 11, "under": [2, 3, 4, 5, 6, 11], "underlying": 14, "underscor": [6, 9, 11], "understand": [0, 2, 4, 6, 7, 8], "understanding": 16, "undocumented": 15, "unfortunat": 6, "unfortunately": 13, "unicod": [6, 11], "unicodedecodeerror": 6, "unid": 6, "uniform": 6, "uniqu": [6, 7, 11], "unit_pric": 6, "unit\u00e1ri": 6, "universal": [4, 6, 9], "uni\u00e3": 6, "unknown": 4, "unless": [3, 5, 6, 8, 11, 15], "unlik": [0, 2, 7, 8, 14, 15], "unnamed": 6, "unneded": 2, "unordered": 9, "unpkg": 15, "unquoted": 9, "uns": 5, "unsaf": [5, 9], "untested": [2, 12], "until": [0, 5, 6, 8, 11], "un\u00e1ri": 6, "up": [1, 2, 5, 6, 8, 12, 15], "updat": [2, 5, 11, 13, 14, 15], "update_languag": 10, "update_naiv": 6, "update_thing": 11, "updated": [5, 6, 11], "upgrad": [2, 6], "upgraded": 2, "upload": [4, 6], "upload_fold": [6, 11], "upload_help": 15, "uploaded": [6, 11, 14], "uploadfield": 6, "uploadfold": 6, "uploadfs": 6, "uploads": 6, "uploadseparat": 6, "upon": [2, 12, 14], "upper": [4, 5, 11], "upper_cas": 5, "uppercas": [5, 11], "uri": 12, "uris": 6, "url": [4, 5, 7, 8, 11, 12, 13, 14, 15], "url_prefix": 2, "url_sign": 5, "url_to_post_t": 15, "urls": [2, 11, 14], "urlsign": 16, "us": [2, 11], "usa": [0, 4, 5, 6, 8], "usabl": 13, "usad": [0, 4, 6, 9, 10, 12, 13], "usag": [2, 3, 4, 5, 6, 9, 11, 12, 13], "usam": 6, "usand": [4, 5, 8, 9, 12, 16], "usar": [2, 4, 5, 6, 8, 9, 13], "use": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "use_schedul": 15, "used": [2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "useful": [2, 4, 8, 9, 11, 13, 15], "usefull": 11, "useless": [11, 14], "user": [2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15], "user_email": 14, "user_id": [5, 6, 12, 14], "user_nam": 6, "user_outside_network": 12, "user_password": 6, "usernam": [5, 6, 12], "users": [0, 1, 4, 5, 12, 14], "uses": [0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "using": [0, 1, 3, 4, 6, 7, 11, 14, 16], "uso": [2, 5, 13], "usos": 6, "usou": [5, 6], "usr": 1, "usual": [2, 8, 9, 11], "usually": [1, 5, 7, 11], "usu\u00e1ri": [1, 2, 3, 4, 5, 6, 12, 14], "us\u00e1": [2, 6, 8], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "utility": [2, 11], "utiliz": [2, 3, 4, 5, 6, 9, 12, 13], "utilizing": 13, "utils": [2, 4, 5, 8, 9, 11, 12, 13, 14, 16], "uuid": [5, 6], "uuid4": [5, 6], "uuids": 6, "v": [5, 9, 11, 15], "v3": 1, "vai": [1, 4, 6, 8], "val": 13, "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [4, 6, 9, 14, 16], "validad": 6, "validat": [6, 11], "validate_js": 4, "validated": 11, "validation": [4, 6, 7, 8, 13], "validator": [6, 11], "validators": [2, 14], "validity": 11, "valios": 1, "valor": [5, 9, 10, 11, 13], "valq7711": [0, 4], "vals": 15, "valu": [2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15], "value1": 6, "value2": 6, "value_field": 11, "valued": 11, "vam": [1, 6, 9], "vantag": 6, "vantagens": 6, "var": 15, "varch": 6, "vari": 6, "variabl": [5, 6, 9, 11, 13, 15], "various": 5, "vari\u00e1vel": [4, 6, 9, 10], "varredur": 6, "vars": [6, 9, 11, 14], "vaz": 6, "vazi": [2, 6], "ve": [2, 3, 5, 8, 9, 11, 13, 15], "vej": [2, 3], "veloc": 6, "vem": [0, 4, 6], "vendor": 15, "vendor_typ": 15, "vendors": 15, "venv": 2, "ver": [2, 6, 12], "verd": 4, "verdad": 13, "verdadeir": [6, 11, 13], "verif": 6, "verific": [5, 6, 12], "verification": 12, "verified": [5, 11], "verify": 5, "verify_email": 12, "verifying": 12, "vermelh": 4, "vers": 5, "version": [1, 3, 7, 8, 11, 15], "versions": [2, 5, 11], "vers\u00f5": 6, "vertic": 6, "verticaadapt": 6, "very": [0, 4, 8, 9, 11, 12, 14, 15], "vez": [2, 4, 5, 8, 9, 12, 13], "ve\u00edcul": 5, "via": [5, 6, 8, 9, 15], "vias": 6, "vic": 5, "vid": [1, 2, 15], "view": [1, 5, 6], "viewport": 8, "views": 6, "vincul": 6, "vind": 2, "vir": 12, "virtual": [1, 16], "virtualenv": [1, 2], "virtualfields": 6, "visit": [3, 5, 11], "visit_log": 5, "visited": [5, 8], "visiting": [5, 12], "visitor": 6, "visitors": [9, 11], "visits": 6, "vist": [5, 6, 9], "visual": 1, "visualiz": 6, "vis\u00e3": 6, "vis\u00edvel": 4, "vital": 12, "voc": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13], "volt": [5, 6], "vou": 2, "vscod": 2, "vue": [0, 4, 15], "vulner": 8, "v\u00e1l": 4, "v\u00e1r": [2, 4, 5, 6], "v\u00e1ri": [4, 5, 6, 10], "v\u00e3": 6, "v\u00ea": 6, "v\u00edrgul": 6, "v\u00f4o": 7, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 11, 15], "wants": 5, "warning": [2, 5], "was": [0, 5, 6, 11, 12], "watch": [2, 3, 16], "watched": 4, "way": [2, 3, 5, 6, 8, 9, 11, 12, 14], "wayn": [7, 13], "ways": [0, 2, 4, 6, 12, 13, 15], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "web": [0, 1, 2, 5, 6, 8, 12, 13, 14, 15, 16], "web2py": [0, 1, 2, 3, 4, 6, 11, 12, 13, 16], "websit": [6, 15], "websocket": 15, "welcom": [4, 5, 8, 14, 15], "well": [0, 5, 6, 8, 11, 12, 15], "wer": [0, 4], "what": [4, 5, 6, 8, 11, 12, 14, 15], "whatev": [9, 15], "when": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whenev": 4, "wher": [1, 2, 4, 6, 8, 11, 12, 14, 15], "wheth": [5, 6, 11, 12, 14], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "whichev": 15, "whil": [5, 6, 7, 11, 12, 14], "whit": [9, 15], "whitelist": 12, "who": [0, 12], "whol": [4, 11], "whos": [6, 8, 11], "why": [5, 8, 14], "widget": [6, 11], "widgets": [15, 16], "width": [8, 11], "wik": [6, 7], "wikiped": [6, 7], "wild": 6, "wildcard": 4, "will": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "window": [5, 8, 11], "windows": [1, 2, 4, 6], "wish": 15, "wishing": 11, "wit": 2, "with": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 15], "with_al": 6, "withh": 5, "within": [0, 1, 5, 6, 8, 9, 11, 15], "without": [6, 8, 9, 15, 16], "wolf": 0, "wood": 6, "words": [5, 13], "work": [0, 2, 4, 5, 6, 8, 9, 11, 15], "worked": 0, "workers": 2, "workflow": [5, 16], "working": [2, 11], "workload": 6, "workplac": 1, "works": [2, 6, 8, 11, 12, 13, 14, 15], "workspacefold": 2, "world": [4, 5, 6, 8, 9, 11], "worry": 4, "worth": 8, "would": [0, 5, 6, 9, 11, 15], "wouldn": 6, "wrap": [11, 15], "wrapp": 15, "wrapped": 5, "wrappers": 14, "writ": [2, 4, 5, 6, 8], "writabl": [5, 6, 11, 14], "writing": [4, 6, 14], "written": [1, 8, 11, 13], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 9, 13], "x": [2, 6, 8, 9, 11, 13, 15], "xml": [5, 8, 11, 14, 15], "xmlescap": 9, "xmlns": 9, "xss": [6, 8, 9], "xyz": [9, 11], "y": [2, 9, 11], "yaml": 2, "yatl": [0, 4, 5, 6, 11, 13, 15, 16], "yb": 9, "year": [11, 15], "yes": [2, 6, 15], "yes_or_n": 6, "yet": [0, 2, 4, 5, 8, 11, 15], "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15], "your": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15], "your_app": 11, "your_full_path_to_py4web": 1, "your_nam": [1, 15], "yourapp": 6, "yourappnam": 2, "youremail": 12, "yourself": [1, 11], "youtub": [2, 6], "yyyy": 11, "z": [9, 11], "zanferrar": 0, "zap": 12, "zap_id": 12, "zapp": 12, "zapped": 12, "zer": [6, 8, 11, 13], "zip": [0, 2, 6, 11], "zip_cod": 15, "zxjdbc": 6, "\u00c0s": [6, 9], "\u00e1rvor": 4, "\u00e2mbit": 4, "\u00e9": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16], "\u00e9poc": 6, "\u00edndic": 4, "\u00f3bvi": [6, 8], "\u00f3ptim": 4, "\u00faltim": [5, 6, 12], "\u00fanic": [0, 2, 6, 9], "\u00fate": [1, 6], "\u00fatil": 6}, "titles": ["O que \u00e9 py4web?", "Ajuda, recursos e dicas", "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento", "O Dashboard", "Creating an app", "Fixures", "The Database Abstraction Layer (DAL)", "The RestAPI", "Linguagem de template YATL", "Helpers YATL", "Internacionaliza\u00e7\u00e3o", "Foruml\u00e1rios", "Authentication and authorization", "Rede", "De web2py para py4web", "Advanced topics and examples", "py4web: o manual de refer\u00eancia"], "titleterms": {"A": [3, 6, 9, 11], "As": 1, "Comando": 6, "Como": 1, "De": 14, "Do": 4, "EM": 9, "Em": 4, "Este": 1, "Mais": 6, "O": [0, 1, 3, 4, 5, 6], "OS": 14, "Os": [6, 13], "Um": [1, 6], "_lastsql": 6, "_scaffold": 4, "about": 5, "abstraction": 6, "accessing": 14, "acknowledgments": 0, "actions": [7, 12], "adapt": 6, "adicion": 6, "advanced": [11, 15], "agrup": 6, "ajud": 1, "aka": 2, "alias": 6, "alon": 6, "amostr": 13, "an": 4, "and": [6, 7, 8, 11, 12, 13, 14, 15], "antig": 6, "any_of": 11, "anywher": 5, "aplic": 6, "app": [2, 4], "args": 14, "arquiv": 10, "as_dict": 6, "as_list": 6, "assinatur": 6, "asynci": 15, "atalh": 6, "atribut": 6, "atualiz": [6, 10], "aut": 6, "autentic": 12, "auth": [5, 12, 14], "authentication": 12, "authorization": 12, "autocomplet": 15, "avanc": 6, "avg": 6, "a\u00e7\u00e3": 13, "banc": 6, "bas": 6, "basic": [11, 13], "beautify": 9, "belongs": 6, "bin\u00e1ri": 2, "block": 8, "body": 9, "bot\u00e3": 13, "bot\u00f5": 13, "built": 9, "b\u00e1sic": 8, "cach": 6, "caching": 5, "cad": 6, "call": 2, "callabl": 13, "calling": 14, "camp": [6, 13], "caracter\u00edst": 6, "cas": 6, "cascad": 6, "cat": 9, "caveats": 5, "celery": 15, "cham": 6, "chang": 4, "chav": 6, "checkbox": 11, "children": 9, "class": 13, "cleanup": 11, "client": 5, "coalesc": 6, "coalesce_zer": 6, "coloc": 2, "columns": 13, "comando": 2, "combin": 6, "commit": 6, "complexity": 11, "comput": 6, "computed": 6, "comuns": 6, "condition": 5, "conex\u00e3": 6, "conex\u00f5": 6, "configur": [2, 6], "constructor": 11, "construtor": 6, "consult": 6, "cont": 6, "contains": 6, "conte\u00fad": 16, "contribu": 1, "control": 6, "convenient": 5, "conversion": 14, "cooki": 5, "copi": 6, "copying": 4, "corr": 2, "count": [6, 14], "creating": 4, "crud": 13, "crypt": 11, "csv": 6, "custom": [11, 13], "customizing": 13, "dad": 6, "dal": [5, 6], "dashboard": 3, "dat": 11, "databas": [5, 6, 11], "datastor": 6, "day": 6, "db": 6, "decor": 5, "def": 8, "default": 8, "defeit": 6, "defin": 6, "define_tabl": 6, "deix": 6, "delet": 6, "deployment": 2, "depur": 1, "design": [2, 11], "development": 8, "dic": 1, "dicion\u00e1ri": 6, "dictionari": 11, "din\u00e2m": 4, "discord": [1, 12], "distinct": 6, "distint": 6, "distribu\u00edd": 6, "div": 9, "dock": 2, "dom": 9, "drop": 6, "elif": 8, "else": 8, "endswith": 6, "engin": 2, "envi": 6, "environment": 2, "equality": 11, "estil": 6, "est\u00e1t": 4, "etiquet": 12, "exampl": [7, 11, 13, 14, 15], "excet": 8, "exclud": 6, "exclus\u00e3": 6, "execu": 6, "executesql": 6, "experiment": 6, "experimental": 6, "export": 6, "express\u00f5": 6, "extend": 8, "extending": 8, "facebook": 12, "factor": 12, "fake_migrat": 6, "falh": 6, "faz": 6, "featur": 13, "fich": 6, "field": [6, 11], "fields": 6, "fil": [4, 11, 14], "filter_in": 6, "filter_out": 6, "filtering": 13, "filtr": 6, "finally": 8, "find": [6, 9], "first": 6, "fixa\u00e7\u00e3": 6, "fixtur": 5, "fixur": 5, "flash": [5, 14], "font": [1, 2], "form": [9, 11, 14, 15], "format": [6, 11, 15], "forms": 11, "formul\u00e1ri": 11, "foruml\u00e1ri": 11, "from": 2, "funcion": 2, "functions": [8, 11], "gae": 2, "gcloud": 2, "generating": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 12], "grid": [13, 14, 15], "groupby": 6, "grup": 1, "h1": 9, "h2": 9, "h3": 9, "h4": 9, "h5": 9, "h6": 9, "having": 6, "head": 9, "hell": 14, "helpers": 9, "heranc": 6, "hour": 6, "html": [6, 9], "htmx": 15, "https": 2, "i": 9, "id": 6, "if": 8, "ilik": 6, "img": 9, "impersonation": 12, "implant": 2, "import": 6, "in": [5, 8, 9, 15], "includ": 8, "inferior": 6, "information": 8, "inject": [5, 9], "inner": 6, "input": 9, "inser": 6, "insert": 6, "inser\u00e7\u00e3": 6, "insid": 12, "instal": 2, "installations": 2, "installing": 2, "interfac": 12, "internacionaliz": 10, "introduction": 6, "is_alphanumeric": 11, "is_dat": 11, "is_date_in_rang": 11, "is_datetim": 11, "is_datetime_in_rang": 11, "is_decimal_in_rang": 11, "is_email": 11, "is_empty_or": 11, "is_equal_t": 11, "is_expr": 11, "is_fil": 11, "is_float_in_rang": 11, "is_imag": 11, "is_in_db": 11, "is_in_set": 11, "is_int_in_rang": 11, "is_ipaddress": 11, "is_ipv4": 11, "is_ipv6": 11, "is_json": 11, "is_length": 11, "is_list_of": 11, "is_list_of_emails": 11, "is_low": 11, "is_match": 11, "is_not_empty": 11, "is_not_in_db": 11, "is_null_or": 11, "is_slug": 11, "is_strong": 11, "is_tim": 11, "is_upload_filenam": 11, "is_upp": 11, "is_url": 11, "isempty": 6, "iter": 6, "join": 6, "joins": 6, "js": 15, "junt": 6, "key": 13, "label": 9, "last": 6, "lay": 6, "layout": 8, "ldap": 12, "left": 6, "leg": 6, "len": 6, "less": 6, "li": 9, "lik": 6, "limitby": 6, "linguag": 8, "linh": 2, "list": 6, "local": [1, 2, 6], "low": 6, "l\u00f3gic": 6, "manipulation": 11, "manual": [1, 16], "many": 6, "marca\u00e7\u00e3": 6, "max": 6, "melhor": 2, "memcach": 5, "memoiz": 5, "mem\u00f3r": 6, "mesm": 6, "methods": [6, 14], "microsoft": 6, "migrat": 6, "migra\u00e7\u00e3": 6, "migra\u00e7\u00f5": 6, "min": 6, "minimal": 11, "minut": 6, "mobil": 8, "model": [4, 6], "modern": 1, "modific": 6, "month": 6, "mssql": 6, "muit": 6, "multipl": [5, 12], "mysql": 6, "new_app": 2, "nom": 6, "nosql": 6, "not": 6, "nov": 6, "oauth2": 12, "object": [13, 15], "objects": 12, "objet": 4, "obten\u00e7\u00e3": 6, "ol": 9, "on": 2, "on_defin": 6, "oper": 6, "option": 9, "options": 11, "op\u00e7\u00e3": 2, "op\u00e7\u00f5": 2, "orden": 6, "orderby": 6, "orderby_on_limitby": 6, "or\u00e1cul": 6, "other": 11, "out": 6, "outr": 6, "overview": 9, "p": 9, "padr\u00e3": 6, "pag": 8, "palavr": 6, "pam": 12, "par": [6, 8, 14], "paramet": 11, "parameters": 13, "part": [2, 6], "par\u00e2metr": 6, "past": 6, "pegadinh": 6, "permiss\u00f5": 12, "personaliz": [5, 6, 9, 13], "pip": 2, "plataform": 2, "plugins": 12, "plural": 6, "pluraliz": 10, "podman": 2, "polic": 7, "polymodel": 6, "pool": 6, "practical": 7, "pre": 9, "preguic": 6, "primarykey": 6, "primeir": 2, "prim\u00e1r": 6, "principal": 3, "princ\u00edpi": 4, "proced": 2, "pr\u00e9": [1, 2], "py4web": [0, 1, 6, 14, 15, 16], "pycharm": 1, "python": 1, "pythonanywher": 2, "p\u00e1gin": [3, 4], "q": 15, "quebr": 6, "query": 6, "quick": 6, "quoting": 6, "rang": 11, "raw": 6, "real": 6, "record": 6, "recurs": [1, 6], "red": [5, 13], "redefin": 6, "redirect": 14, "referent": [6, 13, 16], "regexp": 6, "registr": 6, "relation": 6, "relations": 6, "rela\u00e7\u00e3": 6, "remot": 6, "renderiz": 6, "replic": 6, "represent": 6, "request": 4, "requisit": [1, 2], "reserv": 6, "respons": 7, "restap": 7, "resum": 6, "retorn": [4, 6], "return": [8, 14], "returning": 14, "rnam": 6, "rollback": 6, "rot": 4, "row": 6, "rows": 6, "run": 2, "s": 6, "schedul": 15, "script": 9, "searching": 13, "seconds": 6, "security": 11, "segur": 6, "select": [6, 9], "selects": 6, "selet": 6, "sequence_nam": 6, "serv": [1, 5, 6, 9], "session": 5, "sessions": 5, "sess\u00e3": 3, "set": [6, 11], "set_password": 2, "setting": 14, "settings": 13, "setup": 2, "sharing": 5, "shell": [2, 6], "sid": [5, 9], "sidec": 11, "simpl": 14, "sincroniz": 6, "singul": 6, "sintax": 8, "sobr": 6, "sort": 6, "sorted": 11, "span": 9, "special": [2, 11], "sql": 6, "sqlit": 6, "stand": 6, "standard": [8, 11], "startswith": 6, "string": 15, "strings": 6, "structur": [8, 11], "style": [9, 13], "substrings": 6, "sugest\u00f5": 1, "sum": 6, "sup": 8, "suport": [2, 6], "supported": 6, "t": 15, "tabel": [6, 16], "tabl": [6, 9], "table_class": 6, "tag": 9, "tagging": 11, "tags": 12, "tbody": 9, "td": 9, "temp": 6, "templat": [5, 8, 13], "temporiz": 6, "tend": 6, "tent": 8, "tentat": 6, "text": 11, "textar": 9, "th": 9, "the": [1, 2, 4, 5, 6, 7, 11, 13, 15], "thead": 9, "tim": 11, "tip": 6, "titl": 9, "to": 6, "tod": 6, "topics": 15, "tour": 6, "tr": 9, "trabalh": 1, "tradu\u00e7\u00e3": 10, "transa\u00e7\u00e3": 6, "translator": 5, "trigger_nam": 6, "tt": 9, "tupl": 11, "tutori": 1, "two": 12, "two_factor_required": 12, "two_factor_send": 12, "two_factor_tri": 12, "type": [6, 11], "types": 6, "ubuntu": 2, "ul": 9, "understanding": 2, "up": 14, "updat": 6, "update_or_insert": 6, "update_record": 6, "upload": 11, "upper": 6, "uri": 6, "url": 9, "urlsign": 5, "usag": 15, "usand": [6, 13], "user": 12, "using": [2, 5, 8, 9, 12, 13, 15], "uso": 6, "utils": 15, "valid": 11, "validate_and_insert": 6, "validate_and_updat": 6, "validation": 11, "validators": [6, 11], "valor": [4, 6], "variabl": [8, 14], "velh": 6, "version": [2, 6], "vez": 6, "view": 14, "virtu": 6, "virtual": [2, 6], "vscod": 1, "v\u00edd": 1, "watch": 4, "web": [3, 4], "web2py": 14, "whil": 8, "widget": 15, "widgets": 11, "with": [11, 12, 14], "without": [2, 11], "workflow": 8, "world": 14, "wsgi": 2, "xml": [6, 9], "yatl": [8, 9], "year": 6, "\u00e9": 0, "\u00edndic": [6, 16]}}) \ No newline at end of file diff --git a/docs/chapter-06.rst b/docs/chapter-06.rst index 5076c7f89..c1cd71b99 100644 --- a/docs/chapter-06.rst +++ b/docs/chapter-06.rst @@ -699,6 +699,23 @@ with the following fields: username, email, password, first_name, last_name, sso_id, and action_token (the last two are mostly for internal use). +If a ``auth_user`` table is defined before calling ``auth.enable()`` +the provided table withh be used. + +It is also possible to add ``extra_fields`` to the ``auth_user`` table, +for example: + +.. code:: python + + extra_fields = [ + Field("favorite_color"), + ] + auth = Auth(session, db, extra_fields=extra_fields) + +In any case, we recommend not to pollute the ``auth_user`` table with +extra fields but, instead, to use one of more additional custom +tables that reference users and store the required information. + The ``auth`` object exposes the method:``auth.enable()`` which registers multiple actions including ``{appname}/auth/login``. It requires the presence of the ``auth.html`` template and the diff --git a/docs/chapter-12.rst b/docs/chapter-12.rst index 9437a78ad..5589ef0ae 100644 --- a/docs/chapter-12.rst +++ b/docs/chapter-12.rst @@ -5,7 +5,68 @@ Forms The Form class provides a high-level API for quickly building CRUD (create, update and delete) forms, especially for working on an existing database table. It can generate and process a form from a list of desired fields and/or from an existing database table. -It is a pretty much equivalent to web2py’s ``SQLFORM``. + +There are 3 typs of forms: + +CRUD Create forms: + +.. code:: python + + @action('create_thing') + @action.uses('generic.html', db, flash) + def create_thing(): + form = Form(db.thing) + if form.accepted: + flash.set("record created") + redirect(URL('other_page')) + return locals() + +CRUD Update forms: + +.. code:: python + + @action('update_thing/') + @action.uses('generic.html', db, flash) + def update_thing(thing_id): + form = Form(db.thing, thing_id) + if form.accepted: + flash.set("record updated") + redirect(URL('other_page')) + return locals() + +Non-CRUD forms (not associated to a database): + +.. code:: python + + @action('some_form') + @action.uses('generic.html', flash) + def some_form(): + fields = [ + Field("name", requires=IS_NOT_EMPTY()), + Field("color", required=IS_IN_SET(["red","blue","green"])), + ] + form = Form(fields) + if form.accepted: + flash.set("information recorded") + redirect(URL('other_page')) + return locals() + +The use of flash is optional. ``flash`` is defined in ``common.py`` +in the scaffolding application. It simply stores a message in a cookie +so it can be recovered and displayed after redirection. +This is done in the default layout. + +In this chapter from now on we will assume the following model and +an app derived from the scaffolding app: + +.. code:: python + + db.define_table( + 'thing', + Field('name', requires=IS_NOT_EMPTY()), + Field('color', requires=IS_IN_SET('red','blue','green'])), + Field('image', 'upload'), + ) The Form constructor @@ -58,21 +119,21 @@ Create a new minimal app called ``form_minimal`` : .. code:: python - # in form_minimal/__init__.py - from py4web import action, Field, redirect, URL + # in controllers.py + from py4web impot action, redirect, URL, Field from py4web.utils.form import Form - from pydal.validators import IS_NOT_EMPTY - + from pydal.validators import * @action('index', method=['GET', 'POST']) @action.uses('form_minimal.html') def index(): - form = Form([ - Field('product_name'), - Field('product_quantity', 'integer', requires=IS_NOT_EMPTY()), - ]) + fields = [ + Field('name', requires=IS_NOT_EMPTY()), + Field('color', requires=IS_SET(['red','blue','green']), + ] + form = Form(fields) if form.accepted: - # Do something with form.vars['product_name'] and form.vars['product_quantity'] + # Do something with form.vars['name'] and form.vars['color'] redirect(URL('accepted')) if form.errors: # display message error @@ -124,30 +185,18 @@ Create a new minimal app called ``form_basic`` : .. code-block:: python - # in form_basic/__init__.py - import os - from py4web import action, Field, DAL - from py4web.utils.form import Form, FormStyleDefault - from pydal.validators import IS_NOT_EMPTY, IS_IN_SET - - # database definition - DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases') - if not os.path.isdir(DB_FOLDER): - os.mkdir(DB_FOLDER) - db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER) - db.define_table( - 'person', - Field('superhero', requires=IS_NOT_EMPTY()), - Field('realname'), - Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])), - ) + # in controllers.py + from py4web impot action, redirect, URL, Field + from py4web.utils.form import Form + from pydal.validators import * + from .common import db # controllers definition @action("index", method=["GET", "POST"]) @action.uses("form_basic.html", db) def index(id=None): - form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault) - rows = db(db.person).select() + form = Form(db.thing, id, deletable=False, formstyle=FormStyleDefault) + rows = db(db.thing).select() return dict(form=form, rows=rows) @@ -163,7 +212,9 @@ contains, for example, the following code: .. code:: html -

          Form Basic example: Superhero Identity

          + [[extend "layout.html"]] + +

          Form Basic example: My Things

          [[=form]] @@ -171,7 +222,7 @@ contains, for example, the following code:
            [[for row in rows:]] -
          • [[=row.id]]: [[=row.superhero]] ([[=row.realname]]) from [[=row.universe]]
          • +
          • [[=row.id]]: [[=row.name]] has color [[=row.color]]
          • [[pass]]
          @@ -180,16 +231,16 @@ Reload py4web and visit http://127.0.0.1:8000/form_basic : the result is an input form on the top of the page, and the list of all the previously added entries on the bottom: -.. image:: images/form2.png +.. image:: images/form2.png ### FIX THIS This is a simple example and you cannot change nor delete existing records. But if you'd like to experiment, the database content can be fully seen and changed with the Dashboard app. -Notice that py4web by default let you choose the value of the `universe` field using -a dropdown menu: +Notice that py4web by default let you choose the value of the `color` field using +a dropdown menu. -.. image:: images/form3.png +.. image:: images/form3.png ### FIX THIS The basic form usage is quite useful for rapid prototyping of programs, since you don't need to specify the layout of the form. On the other hand, you cannot change its default behaviour. @@ -206,29 +257,17 @@ Let's look at a simple example: .. code-block:: python - # in form_upload/__init__.py - import os - from py4web.core import required_folder - from py4web import action, Field, DAL + # in controllers.py + from py4web impot action, redirect, URL, Field from py4web.utils.form import Form, FormStyleDefault - from pydal.validators import IS_NOT_EMPTY - - # database definition - DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases') - if not os.path.isdir(DB_FOLDER): - os.mkdir(DB_FOLDER) - db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER) - db.define_table( - 'person', - Field('superhero', requires=IS_NOT_EMPTY()), - Field('image', "upload", label='Superhero Image', requires=IS_NOT_EMPTY()), - ) + from pydal.validators import * + from .common import db @action("index", method=["GET", "POST"]) @action.uses("form_upload.html", db) def upload(id=None): - form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault) - rows = db(db.person).select() + form = Form(db.thing, id, deletable=False, formstyle=FormStyleDefault) + rows = db(db.thing).select() return dict(form=form, rows=rows) @@ -236,7 +275,7 @@ And in templates/form_upload.html : .. code:: html -

          Form upload example: Superhero Identity

          +

          Form upload example: My Things

          [[=form]] @@ -244,17 +283,18 @@ And in templates/form_upload.html :
            [[for row in rows:]] -
          • [[=row.id]]: [[=row.superhero]] = [[=row.image]]
          • +
          • [[=row.id]]: [[=row.thing]] image
          • [[pass]]
          This gives a result like the following: -.. image:: images/form6.png +.. image:: images/form6.png ### FIX ME +Notice that the ``download`` action is defined in the scaffolding app in ``common.py``. -Note that the uploaded files will be saved on the UPLOAD_FOLDER folder with their name hashed. +The uploaded files (the thing images) are saved on the UPLOAD_FOLDER folder with their name hashed. Other details on the upload fields can be found on :ref:`Field constructor` paragraph, including a way to save the files inside the database itself. @@ -286,69 +326,39 @@ This is an improved 'Basic Form Example' with a radio button widget: .. code:: python - # in form_widgets/__init__.py - import os - from py4web import action, Field, DAL + # in controllers.py + from py4web impot action, redirect, URL, Field from py4web.utils.form import Form, FormStyleDefault, RadioWidget - from pydal.validators import IS_NOT_EMPTY, IS_IN_SET - - # database definition - DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases') - if not os.path.isdir(DB_FOLDER): - os.mkdir(DB_FOLDER) - db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER) - db.define_table( - 'person', - Field('superhero', requires=IS_NOT_EMPTY()), - Field('realname'), - Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])), - ) + from pydal.validators import * + from .common import db # controllers definition @action("index", method=["GET", "POST"]) @action.uses("form_widgets.html", db) def index(id=None): - FormStyleDefault.widgets['universe']=RadioWidget() - form = Form(db.person, id, deletable=False, formstyle=FormStyleDefault) - rows = db(db.person).select() + FormStyleDefault.widgets['color']=RadioWidget() + form = Form(db.thing, formstyle=FormStyleDefault) + rows = db(db.thing).select() return dict(form=form, rows=rows) Notice the differences from the 'Basic Form example' we've seen at the beginning of the chapter: - you need to import the widget from the py4web.utils.form library -- before the form definition, you define the ``universe`` field form style with the line: +- before the form definition, you define the ``color`` field form style with the line: .. code:: python - FormStyleDefault.widgets['universe']=RadioWidget() - -You will also need a template file ``templates/form_widgets.html`` that -contains the following code (as the form_basic.html) : - -.. code:: html - -

          Form Widget example: Superhero Identity

          - - [[=form]] - -

          Rows

          - -
            - [[for row in rows:]] -
          • [[=row.id]]: [[=row.superhero]] ([[=row.realname]]) from [[=row.universe]]
          • - [[pass]] -
          + FormStyleDefault.widgets['color']=RadioWidget() The result is the same as before, but now we have a radio button widget instead of the dropdown menu! -.. image:: images/form4.png +.. image:: images/form4.png ### FIX ME Using widgets in forms is quite easy, and they'll let you have more control on its pieces. - Custom widgets ~~~~~~~~~~~~~~ @@ -357,26 +367,11 @@ improving again our Superhero example: .. code:: python - # - # in form_custom_widgets/__init__.py - # - import os - from py4web import action, Field, DAL + # in controllers.py + from py4web impot action, redirect, URL, Field from py4web.utils.form import Form, FormStyleDefault, RadioWidget - from pydal.validators import IS_NOT_EMPTY, IS_IN_SET - from yatl.helpers import INPUT, DIV - - # database definition - DB_FOLDER = os.path.join(os.path.dirname(__file__), 'databases') - if not os.path.isdir(DB_FOLDER): - os.mkdir(DB_FOLDER) - db = DAL('sqlite://storage.sqlite', folder=DB_FOLDER) - db.define_table( - 'person', - Field('superhero', requires=IS_NOT_EMPTY()), - Field('realname'), - Field('universe', requires=IS_IN_SET(['DC Comics','Marvel Comics'])), - ) + from pydal.validators import * + from .common import db # custom widget class definition class MyCustomWidget: @@ -400,44 +395,21 @@ improving again our Superhero example: def index(id=None): MyStyle = FormStyleDefault MyStyle.classes = FormStyleDefault.classes - MyStyle.widgets['superhero']=MyCustomWidget() - MyStyle.widgets['realname']=MyCustomWidget() - MyStyle.widgets['universe']=RadioWidget() + MyStyle.widgets['name']=MyCustomWidget() + MyStyle.widgets['color']=RadioWidget() - form = Form(db.person, id, deletable=False, formstyle=MyStyle) - rows = db(db.person).select() + form = Form(db.thing, id, deletable=False, formstyle=MyStyle) + rows = db(db.thing).select() return dict(form=form, rows=rows) - - -You will also need a template file ``templates/form_custom_widgets.html`` that -contains the following code (as the form_basic.html) : - -.. code:: html - -

          Form Custom Widgets example: Superhero Identity

          - - [[=form]] - -

          Rows

          - -
            - [[for row in rows:]] -
          • [[=row.id]]: [[=row.superhero]] ([[=row.realname]]) from [[=row.universe]]
          • - [[pass]] -
          - - - The result is similar to the previous ones, but now we have a custom input field, with foreground color red and background color black: -.. image:: images/form5.png +.. image:: images/form5.png ### FIX ME Even the radio button widget has changed, from red to blue. - Advanced form design -------------------- @@ -487,10 +459,6 @@ For example you could use it to avoid displaying the ``id`` field while editing [[=form.custom.submit ]] [[=form.custom.end ]] - -Custom forms are also frequently used for avoiding code redundancy; you can use a single template file for -multiple form types, and programmatically change the fields contained and how to render them. - Note: 'custom' is just a convention, it could be any name that does not clash with already defined objects. .. warning:: @@ -504,6 +472,29 @@ Note: 'custom' is just a convention, it could be any name that does not clash wi your css framework, you'll have to add an outer DIV in order to get select controls to appear correctly. + +You can also be more creative and use your HTML in the template instead of using widgets: + + [[=form.custom.begin ]] + + [[for field, error form.errors.items:]] +
          Field [[=field]] [[=error]]
          + [[pass]] + +
          + +
          +
          + [[for color in ['red', 'blue', 'green']:]] + + + [[pass]] +
          + + [[=form.custom.end ]] + The sidecar parameter ~~~~~~~~~~~~~~~~~~~~~ @@ -828,6 +819,19 @@ Examples: prepend_scheme='https') +``IS_SAFE`` +^^^^^^^^^^^ + +.. code:: python + + requires = IS_SAFE(error_message='Unsafe Content') + requires = IS_SAFE(mode="sanitize") + requires = IS_SAFE(sanitizer=lambda text: str(XML(text, sanitize=True))) + +This validators is for text fields that should contain HTML and may contain invalid tags (script, ember, object, iframe). +It works by trying to sanitize the content and either provide an error (mode="error") or replacing the content +with the sanitized one (mode="sanitize"). You can specify the error message, the mode, and provide your own sanitizer. + ``IS_SLUG`` ^^^^^^^^^^^ diff --git a/docs/chapter-16.rst b/docs/chapter-16.rst index 55bc63e27..21dd1bd6e 100644 --- a/docs/chapter-16.rst +++ b/docs/chapter-16.rst @@ -2,6 +2,84 @@ Advanced topics and examples ============================ +The scheduler +------------- + +Py4web has a built-in scheduler. There is nothing for you to install or configure to make it work. + +Given a task (just a python function), you can schedule async runs of that function. +The runs can be a one-off or periodic. They can have timeout. They can be scheduled to run at a given scheduled time. + +The scheduler works by creating a table ``task_run`` and enqueueing runs of the predefined task as table records. +Each ``task_run`` references a task and contains the input to be passed to that task. The scheduler will caputure the +task stdout+stderr in a ``db.task_run.log`` and the task output in ``db.task_run.output``. + +A py4web thread loops and finds the next task that needs to be executed. For each task it creates a worker process +and assigns the task to the worker process. You can specify how many worker processes should run concurrently. +The worker processes are daemons and they only live for the life of one task run. Each worker process is only +responsible for executing that one task in isolation. The main loop is responsible for assigning tasks and timeouts. + +The system is very robust because the only source of truth is the database and its integrity is guaranteed by +transational safety. Even if py4web is killed, running tasks continue to run unless they complete, fail, or are +explicitely killed. + +Aside for allowing multiple concurrent task runs in execution on one node, +it is also possible to run multiple instances of the scheduler on different computing nodes, +as long as they use the same client/server database for ``task_run`` and as long as +they all define the same tasks. + +Here is an example of how to use the scheduler: + +.. code:: python + + from pydal.tools.scheduler import Scheduler, delta, now + from .common import db + + # create and start the scheduler + scheduler = Scheduler(db, sleep_time=1, max_concurrent_runs=1) + scheduler.start() + + # register your tasks + scheduler.register_task("hello", lambda **inputs: print("hi!")) + scheduler.register_task("slow", lambda: time.sleep(10)) + scheduler.register_task("periodic", lambda **inputs: print("I am periodic!")) + scheduler.register_task("fail", lambda x: 1 / x) + + # enqueue some task runs: + + scheduler.enqueue_run(name="hello") + scheduler.enqueue_run(name="hello", scheduled_for=now() + delta(10) # start in 10 secs + scheduler.enqueue_run(name="slow", timeout=1) # 1 secs + scheduler.enqueue_run(name="periodic", period=10) # 10 secs + scheduler.enqueue_run(name="fail", inputs={"x": 0}) + +Notice that in scaffolding app, the scheduler is created and started in common if +``USE_SCHEDULER=True`` in ``settings.py``. + +You can manage your task runs busing the dashboard or using a ``Grid(path, db.task_run)``. + +To prevent database locks (in particular with sqlite) we recommand: + +- Use a different database for the scheduler and everything else +- Always ``db.commit()`` as soon as possible after any insert/update/delete +- wrap your database logic in tasks in a try...except as in + +.. code:: python + + def my_task(): + try: + # do something + db.commit() + except Exception: + db.rollback() + +Celery +------ + +Yes. You can use Celery instead of the build-in scheduler but it adds complexity and it is less robust. +Yet the build-in schduler is designed for long running tasks and the database can become a bottle neck +if you have hundrands running concurrently. Celery may work better if you have more than 100 concurrent +tasks and/or they are short running tasks. py4web and asyncio