Only use submitted data to populate form when in POST handler. Otherwise default value for Boolean field gets clobbered.
38 lines
1.1 KiB
Python
Executable File
38 lines
1.1 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
from flask import Flask, render_template, flash, request
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import Form, BooleanField, SubmitField, TextField
|
|
from wtforms.validators import DataRequired
|
|
import os
|
|
|
|
DEBUG = False
|
|
app = Flask(__name__)
|
|
app.config.from_object(__name__)
|
|
app.config['SECRET_KEY'] = os.urandom(40)
|
|
|
|
class QRForm(FlaskForm):
|
|
user_data = TextField("Dane:", validators=[DataRequired()])
|
|
trim_spaces = BooleanField("Usuń spacje", default=True)
|
|
submit = SubmitField("Generuj")
|
|
|
|
@app.route("/", methods=["GET", "POST"])
|
|
def main():
|
|
|
|
if request.method == "POST":
|
|
form = QRForm(request.form)
|
|
data = request.form["user_data"]
|
|
if "trim_spaces" in request.form:
|
|
data = data.replace(" ", "")
|
|
else:
|
|
# not POST? get back to ourselves, start with empty form
|
|
form = QRForm()
|
|
data = request.url_root
|
|
|
|
return render_template("main.html", form=form, data=data, genurl="/render/")
|
|
|
|
if __name__ == "__main__":
|
|
app.run(host='::')
|
|
|
|
|