CSLC-Portal / UNO-CSLC-Ticket-Portal

MIT License
4 stars 2 forks source link

Flask-WTF #119

Open Mr-Oregano opened 1 year ago

Mr-Oregano commented 1 year ago

Integrate Flask-WTF for form validation, rendering and invisible ReCAPTCHA

owenwu811 commented 1 year ago
  1. pip install Flask-WTF Flask-Recaptcha
  2. execute flask run from flask import Flask, render_template, redirect, url_for from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired from flask_recaptcha import ReCaptcha app = Flask(name) app.config['SECRET_KEY'] = 'your_secret_key' app.config['RECAPTCHA_SITE_KEY'] = 'your_recaptcha_site_key' app.config['RECAPTCHA_SECRET_KEY'] = 'your_recaptcha_secret_key' recaptcha = ReCaptcha(app=app) class MyForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) submit = SubmitField('Submit') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm()

    if form.validate_on_submit():

    Handle form submission

    name = form.name.data
    # Process the form data, e.g., save to a database
    # Redirect or render a success page

    return render_template('index.html', form=form) @app.route('/recaptcha', methods=['POST']) def recaptcha(): if recaptcha.verify():

    ReCAPTCHA verification succeeded

    return redirect(url_for('index'))

    else:

    ReCAPTCHA verification failed

    # Handle the error appropriately
    pass

index.html:

{{ form.hidden_tag() }} {{ form.name.label }} {{ form.name() }} {{ form.submit() }} {{ recaptcha.display() }}