[Python] Is it necessary to use WTForms in a Flask project? [closed]

Discussão em 'Python' iniciado por Stack, Julho 5, 2025.

  1. Stack

    Stack Membro Participativo

    Well, I'm learning Flask on my own, it seems harder than PHP. I'm having trouble finding good YouTube tutorials, and there are a lot of things to learn, and there are a lot of them, and I've seen some people in these YouTube tutorials create form fields without an HTML tag, but with a wtforms module or create a class for several fields, etc. It's so important to learn how to create form fields in Flask?

    from flask import Flask,render_template,redirect,url_for,request,session,flash
    from flask_sqlalchemy import SQLAlchemy
    from flask_wtf import CSRFProtect,FlaskForm
    from datetime import timedelta
    app=Flask(__name__)
    app.config["SQLALCHEMY_DATABASE_URI"]="sqlite:///db_user.db"
    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"]=False
    db=SQLAlchemy(app)
    app.secret_key="hello world"
    app.permanent_session_lifetime=timedelta(days=400)
    csrf=CSRFProtect(app)
    class User(db.Model):
    id=db.Column(db.Integer,primary_key=True,autoincrement='auto')
    nom=db.Column(db.String(30),nullable=False)
    mdp=db.Column(db.String(30),nullable=False)
    def __init__(self,nom,mdp):
    self.nom=nom
    self.mdp=mdp
    def __repr__(self):
    return "{id: "+str(self.id)+", nom: "+self.nom+", mot de passe: "+self.mdp+"}"

    @app.route('/')
    def home():
    return render_template('index.html')

    @app.route('/sign_in',methods=['POST','GET'])
    def signin():
    if request.method == "POST":
    session.permanent=True
    session["nom"]=request.form["nom"]
    session["mdp"]=request.form["mdp"]
    u=User(session["nom"],session["mdp"])
    db.session.add(u)
    db.session.commit()
    flash("vous étes maintenant inscrit a votre compte")
    return redirect(url_for('traitement'))
    else:
    if "nom" in session:
    flash("vous étes deja inscrit a votre compte")
    return redirect(url_for('traitement'))
    return render_template('form.html')
    @app.route('/traitement')
    def traitement():
    if "nom" in session:
    nom=session["nom"]
    mdp=session["mdp"]
    return render_template('traitement.html', nom=nom,mdp=mdp)
    else:
    flash("vous n'etes pas connécté pour utiliser la page d'acceuil")
    return redirect(url_for('sign_in'))

    @app.route('/sign_out')
    def signout():
    session.pop("nom",None)
    session.pop("mdp",None)
    session.clear()
    flash("vous vous etes déconnéter du site")
    return redirect(url_for('signin'))

    if __name__=="__main__":
    with app.app_context()
    db.create_all()
    app.run(debug=True)

    Continue reading...

Compartilhe esta Página