a light and simple Flask extension for integrating google captcha with Flask Apps
Project description
a light and simple Flask extension for integrating google recaptcha with Flask Apps
0.0 how to install:
pip install -U flask_captcha2
0.1 how to use:
from flask import Flask
from flask_captcha2.GoogleCaptcha import FlaskCaptcha2, FlaskCaptcha3
# `FlaskCaptcha3` is for Google Captcha version 3
# `FlaskCaptcha2` is for Google Captcha version 2
app = Flask(__name__)
# Captcha version 2 Configuration (I'm not a robot)
RECAPTCHA_PRIVATE_KEY = "Put Your private<secret> key here"
RECAPTCHA_PUBLIC_KEY = "Put your public<site> key here"
RECAPTCHA_TABINDEX = "Tab index for Captcha Widget"
RECAPTCHA_LANGUAGE = "Captcha Language <default en>"
RECAPTCHA_SIZE = "Captcha Widget Size default normal <compact،, normal, invisible>"
RECAPTCHA_TYPE = "Captcha type default image"
RECAPTCHA_THEME = "Captcha theme default light <dark, light>"
RECAPTCHA_ENABLED = "Captcha status default True <True, False>"
RECAPTCHA_LOG = "Show captcha requests in stdout <True, False>"
# Captcha version 3 Configuration (invisible captcha)
RECAPTCHA_PRIVATE_KEY = "Put Your private<secret> key here"
RECAPTCHA_PUBLIC_KEY = "Put your public<site> key here"
RECAPTCHA_ENABLED = "Captcha status default True <True, False>"
RECAPTCHA_LOG = "Show captcha requests in stdout <True, False>"
RECAPTCHA_SCORE = "Score for captcha <Float, between 0.5 to 1>"
# Create a captcha instance
captcha2 = FlaskCaptcha2(app=app)
captcha3 = FlaskCaptcha3(app=app)
# or
captcha2 = FlaskCaptcha2()
captcha3 = FlaskCaptcha3()
captcha2.init_app(app=app)
captcha3.init_app(app=app)
0.2 how use in templates for rendering Captcha Widget:
Use < captchaField > Filter to render captcha in html
Version 2 Captcha rendering:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Captcha version 2</title>
</head>
<body>
<form method="POST">
<input type="text" name="username">
<input type="submit" value="submit">
{# With captchaField filter you can render captcha widget in your html code #}
{{ captchaField }}
</form>
</body>
</html>
Version 3 Captcha rendering:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Captcha version 3</title>
</head>
<body>
<form method="POST" id="ParentForm">
<input type="text" name="username">
<input type="submit" value="submit">
{# With captchaField filter you can render captcha widget in your html code #}
{{
captchaField
( {
'btnText': "Submit", # required
'ParentFormID': 'ParentForm', # required
} )
}}
<!--
full arguments in captcha version 3
captchaField(
{
'btnText': "submit btn text", # required
'ParentFormID': 'put prent form id here', # required
'id':'if you want to set id for btn set id in here', # optional
'style': 'css style', # optional
'dataset': optional for giving dataset attribute to submit btn
'hidden-badge':True or False, this value can hide or show captcha badge
})
-->
</form>
</body>
</html>
0.3 How verify Captcha:
Use is_verify method
captcha = FlaskCaptcha2(app)
captcha = FlaskCaptcha3(app)
@app.route("/", methods=["POST"])
def index():
# with is_verify method verify the captcha
if captcha.is_verify():
return "Captcha is ok."
else:
return "Try again!"
Version History:
version 2.0.0 Released: May 18, 2023
Changes:
Noneversion 2.0.1 Released: June 9, 2023
Changes:
version 3.0.0 Released: September 9, 2023
Changes:
version 3.0.2 Released: October 27, 2023
Changes:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Flask-captcha2-3.0.3.tar.gz
(6.7 kB
view details)
File details
Details for the file Flask-captcha2-3.0.3.tar.gz.
File metadata
- Download URL: Flask-captcha2-3.0.3.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
763fd1de766f5df72721764156efcc03d82c0b93b86e6fe56943e4790e625d10
|
|
| MD5 |
ec11965f240f86d986205879f0a6801d
|
|
| BLAKE2b-256 |
a84020bd9fed911f43a71c8c5a207102dc49e2ba4b2a6a8bfeb3b5bfd14c2b90
|