Giter Club home page Giter Club logo

py4web-recaptcha's Introduction

Usage

..
from py4web_recaptcha import ReCaptchaV3Field
..

@action("captcha_form", method=["GET", "POST"])
@action.uses("captcha_form.html", session)
def example_captcha_form():
    def low_score_callback(score):
        session.min_captcha_score = score
        print("low_score_callback_called")

    def get_form(readonly=False):
        print("generating_new_form")
        extra_fields = []

        if hasattr(session, "min_captcha_score"):
            min_score = session.min_captcha_score
            extra_fields = [Field("email", requires=IS_EMAIL())]
        else:
            min_score = 1.0

        return Form(
            [
                Field("name", requires=IS_NOT_EMPTY()),
                *extra_fields,
                ReCaptchaV3Field(
                    name="captcha",
                    action="form1_submit",
                    min_score=min_score,
                    site_key="YOUR_SITE_KEY",
                    secret_key="YOUR_SECRET_KEY",
                    on_captcha_score_low=low_score_callback,
                ),
            ],
            formstyle=FormStyleBulma,
            readonly=readonly
        )

    form = get_form()
    message = ""
    print("accepting/erroring form")
    if form.accepted:
        message = "form accepted with: %s " % (form.vars)
    elif form.errors:
        message = "form has errors: %s " % (form.errors)
        if "captcha" in form.errors:
            form = get_form(readonly=True)
            form.readonly = False
            form.errors['captcha'] = 'Bad score! We need some more info about you ...'
    return dict(form=form, message=message)

py4web-recaptcha's People

Contributors

misl6 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.