- المشاركات
- 72
- مستوى التفاعل
- 3
- النقاط
- 6
@app.route('/submit', methods=['POST']) def submit(): try: # Récupération des données du demandeur nom = request.form.get('demandeur_nom', '').strip() print(f"Nom du demandeur: {nom}") prenom = request.form.get('demandeur_prenom') print(f"Prénom du demandeur: {prenom}") type_demandeur = request.form.get('demandeur_type') print(f"Type de demandeur: {type_demandeur}") # Validation des champs obligatoires if not nom or not prenom or not type_demandeur: print("Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires") return "Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires", 400 if type_demandeur not in TypeDemandeur.__members__: print(f"Erreur: Type de demandeur invalide: {type_demandeur}") return "Type de demandeur invalide", 400 # Vérification si le demandeur existe déjà existing_demandeur = Demandeur.query.filter_by(nom=nom, prenom=prenom).first() if existing_demandeur: print(f"Erreur: Demandeur déjà existant: {existing_demandeur}") return "Demandeur déjà existant", 400 # Création du nouveau demandeur new_demandeur = Demandeur( nom=nom, prenom=prenom, type_demandeur=TypeDemandeur[type_demandeur] ) print(f"Nouveau demandeur créé: {new_demandeur}") db.session.add(new_demandeur) db.session.commit() print("Demandeur enregistré dans la base de données") # Redirection après succès print("Redirection vers la page d'accueil") return redirect(url_for('index')) except Exception as e: db.session.rollback() print(f"Erreur lors de l'enregistrement : {str(e)}") return f"Erreur lors de l'enregistrement : {str(e)}", 500 ;;; <a><p>يرجى ملء الإستمارة بتمعن </p> <form id="road-permit-form" method="POST" action="{{ url_for('submit') }}"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h5 class="card-title">المعلومات الشخصية للمستفيد</h5> </div> <div class="card-body"> <div class="row"> <div class="form-group col-md-4"> <label for="optionsRadios">هل أنت:</label> <select class="form-control" id="optionsRadios" name="optionsRadios"> <option value="فرد" selected>فرد</option> <option value="مقاول">مقاول</option> <option value="شركة">شركة</option> <option value="الخدمة العامة">الخدمة العامة</option> </select> </div> <div class="form-group col-md-4"> <label for="nom" style="font-weight:600;">الاسم</label> <input type="text" class="form-control" id="demandeur_nom" name="demandeur_nom" placeholder="أدخل اسمك"> </div> <div class="form-group col-md-4"> <label for="prenom" style="font-weight:600;">اللقب</label> <input type="text" class="form-control" id="demandeur_prenom" name="demandeur_prenom" placeholder="أدخل لقبك"> </div> </div> </div> </div> </div> </div> <a><p>يرجى ملء الإستمارة بتمعن </p> <form id="road-permit-form" method="POST" action="{{ url_for('submit') }}"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h5 class="card-title">المعلومات الشخصية للمستفيد</h5> </div> <div class="card-body"> <div class="row"> <div class="form-group col-md-4"> <label for="optionsRadios">هل أنت:</label> <select class="form-control" id="optionsRadios" name="optionsRadios"> <option value="فرد" selected>فرد</option> <option value="مقاول">مقاول</option> <option value="شركة">شركة</option> <option value="الخدمة العامة">الخدمة العامة</option> </select> </div> <div class="form-group col-md-4"> <label for="nom" style="font-weight:600;">الاسم</label> <input type="text" class="form-control" id="demandeur_nom" name="demandeur_nom" placeholder="أدخل اسمك"> </div> <div class="form-group col-md-4"> <label for="prenom" style="font-weight:600;">اللقب</label> <input type="text" class="form-control" id="demandeur_prenom" name="demandeur_prenom" placeholder="أدخل لقبك"> </div> </div> </div> </div> </div> </div> ;;;127.0.0.1 - - [03/Mar/2025 10:29:32] "GET /static/assets/js/plugin/chartist/plugin/chartist-plugin-tooltip.min.js.map HTTP/1.1" 404 - 127.0.0.1 - - [03/Mar/2025 10:29:32] "GET /static/assets/js/plugin/bootstrap-toggle/bootstrap-toggle.min.js.map HTTP/1.1" 404 - Nom du demandeur: Khaouni Prénom du demandeur: Aicha Type de demandeur: None Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires 127.0.0.1 - - [03/Mar/2025 10:29:34] "POST /submit HTTP/1.1" 400 -
Lors de l'envoi du formulaire, la valeur de type_demandeur est envoyée avec le nom optionsRadios, mais dans votre code, vous récupérez la valeur avec request.form.get('demandeur_type').
Solution :
Dans votre formulaire HTML, vous devez vous assurer que le champ type_demandeur correspond bien à ce qui est récupéré dans le backend. Il semble que le champ name de votre select soit optionsRadios, donc vous devez ajuster votre code pour récupérer la valeur de ce champ avec request.form.get('optionsRadios').
Voici le code modifié pour cela :
نسختحرير
<select class="form-control" id="optionsRadios" name="optionsRadios">
<option value="فرد" selected>فرد</option>
<option value="مقاول">مقاول</option>
<option value="شركة">شركة</option>
<option value="الخدمة العامة">الخدمة العامة</option>
</select>
نسختحرير
type_demandeur = request.form.get('optionsRadios')
4o
نسختحرير
@app.route('/submit', methods=['POST'])
def submit():
try:
# Récupération des données du demandeur
nom = request.form.get('demandeur_nom', '').strip()
print(f"Nom du demandeur: {nom}")
prenom = request.form.get('demandeur_prenom')
print(f"Prénom du demandeur: {prenom}")
type_demandeur = request.form.get('optionsRadios')
print(f"Type de demandeur: {type_demandeur}")
# Validation des champs obligatoires
if not nom or not prenom or not type_demandeur:
print("Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires")
return "Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires", 400
# Conversion du type de demandeur en minuscules pour correspondre aux membres de l'énumération
type_demandeur = type_demandeur.lower()
if type_demandeur not in TypeDemandeur.__members__:
print(f"Erreur: Type de demandeur invalide: {type_demandeur}")
return "Type de demandeur invalide", 400
# Vérification si le demandeur existe déjà
existing_demandeur = Demandeur.query.filter_by(nom=nom, prenom=prenom).first()
if existing_demandeur:
print(f"Erreur: Demandeur déjà existant: {existing_demandeur}")
return "Demandeur déjà existant", 400
# Création du nouveau demandeur
new_demandeur = Demandeur(
nom=nom, prenom=prenom,
type_demandeur=TypeDemandeur[type_demandeur]
)
print(f"Nouveau demandeur créé: {new_demandeur}")
db.session.add(new_demandeur)
db.session.commit()
print("Demandeur enregistré dans la base de données")
# Redirection après succès
print("Redirection vers la page d'accueil")
return redirect(url_for('index'))
except Exception as e:
db.session.rollback()
print(f"Erreur lors de l'enregistrement : {str(e)}")
return f"Erreur lors de l'enregistrement : {str(e)}", 500
4o
Voici une version améliorée de la validation et de la création du demandeur :
python
نسختحرير
@app.route('/submit', methods=['POST'])
def submit():
try:
# Récupération des données du demandeur
nom = request.form.get('demandeur_nom', '').strip()
print(f"Nom du demandeur: {nom}")
prenom = request.form.get('demandeur_prenom')
print(f"Prénom du demandeur: {prenom}")
type_demandeur = request.form.get('optionsRadios')
print(f"Type de demandeur: {type_demandeur}")
# Validation des champs obligatoires
if not nom or not prenom or not type_demandeur:
print("Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires")
return "Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires", 400
# Vérification de la validité du type_demandeur
if type_demandeur not in TypeDemandeur.__members__:
print(f"Erreur: Type de demandeur invalide: {type_demandeur}")
return "Type de demandeur invalide", 400
# Vérification si le demandeur existe déjà
existing_demandeur = Demandeur.query.filter_by(nom=nom, prenom=prenom).first()
if existing_demandeur:
print(f"Erreur: Demandeur déjà existant: {existing_demandeur}")
return "Demandeur déjà existant", 400
# Création du nouveau demandeur
new_demandeur = Demandeur(
nom=nom, prenom=prenom,
type_demandeur=TypeDemandeur[type_demandeur] # Pas de conversion nécessaire ici
)
print(f"Nouveau demandeur créé: {new_demandeur}")
db.session.add(new_demandeur)
db.session.commit()
print("Demandeur enregistré dans la base de données")
# Redirection après succès
print("Redirection vers la page d'accueil")
return redirect(url_for('index'))
except Exception as e:
db.session.rollback()
print(f"Erreur lors de l'enregistrement : {str(e)}")
return f"Erreur lors de l'enregistrement : {str(e)}", 500
قال ChatGPT:
Le problème ici réside dans la manière dont les données sont envoyées à votre serveur.Lors de l'envoi du formulaire, la valeur de type_demandeur est envoyée avec le nom optionsRadios, mais dans votre code, vous récupérez la valeur avec request.form.get('demandeur_type').
Solution :
Dans votre formulaire HTML, vous devez vous assurer que le champ type_demandeur correspond bien à ce qui est récupéré dans le backend. Il semble que le champ name de votre select soit optionsRadios, donc vous devez ajuster votre code pour récupérer la valeur de ce champ avec request.form.get('optionsRadios').
Voici le code modifié pour cela :
HTML :
htmlنسختحرير
<select class="form-control" id="optionsRadios" name="optionsRadios">
<option value="فرد" selected>فرد</option>
<option value="مقاول">مقاول</option>
<option value="شركة">شركة</option>
<option value="الخدمة العامة">الخدمة العامة</option>
</select>
Python (Backend) :
pythonنسختحرير
type_demandeur = request.form.get('optionsRadios')
Récapitulatif :
- Changez la récupération de type_demandeur pour correspondre au nom du champ optionsRadios.
- Assurez-vous que le formulaire envoie bien les données sous cette forme.
4o
أنت قلت:
class TypeDemandeur(PyEnum): particulier = "Particulier" service_public = "Service public" maitre_oeuvre = "Maître d’œuvre" entreprise = "Entreprise" @app.route('/') def form(): return render_template('dash/forms.html') :127.0.0.1 - - [03/Mar/2025 10:32:48] "GET /static/assets/js/plugin/chartist/chartist.min.js.map HTTP/1.1" 404 - 127.0.0.1 - - [03/Mar/2025 10:32:48] "GET /static/assets/js/plugin/bootstrap-toggle/bootstrap-toggle.min.js.map HTTP/1.1" 404 - Nom du demandeur: Khaouni Prénom du demandeur: Aicha Type de demandeur: Particulier Erreur: Type de demandeur invalide: Particulier 127.0.0.1 - - [03/Mar/2025 10:32:53] "POST /submit HTTP/1.1" 400 - @app.route('/submit', methods=['POST']) def submit(): try: # Récupération des données du demandeur nom = request.form.get('demandeur_nom', '').strip() print(f"Nom du demandeur: {nom}") prenom = request.form.get('demandeur_prenom') print(f"Prénom du demandeur: {prenom}") type_demandeur = request.form.get('optionsRadios') print(f"Type de demandeur: {type_demandeur}") # Validation des champs obligatoires if not nom or not prenom or not type_demandeur: print("Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires") return "Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires", 400 if type_demandeur not in TypeDemandeur.__members__: print(f"Erreur: Type de demandeur invalide: {type_demandeur}") return "Type de demandeur invalide", 400 # Vérification si le demandeur existe déjà existing_demandeur = Demandeur.query.filter_by(nom=nom, prenom=prenom).first() if existing_demandeur: print(f"Erreur: Demandeur déjà existant: {existing_demandeur}") return "Demandeur déjà existant", 400 # Création du nouveau demandeur new_demandeur = Demandeur( nom=nom, prenom=prenom, type_demandeur=TypeDemandeur[type_demandeur] ) print(f"Nouveau demandeur créé: {new_demandeur}") db.session.add(new_demandeur) db.session.commit() print("Demandeur enregistré dans la base de données") # Redirection après succès print("Redirection vers la page d'accueil") return redirect(url_for('index')) except Exception as e: db.session.rollback() print(f"Erreur lors de l'enregistrement : {str(e)}") return f"Erreur lors de l'enregistrement : {str(e)}", 500قال ChatGPT:
L'erreur que vous rencontrez indique que la valeur récupérée pour type_demandeur dans votre formulaire (ici "Particulier") ne correspond pas exactement à l'une des valeurs définies dans l'énumération TypeDemandeur en raison d'un décalage de casse ou d'un autre problème.Analyse du problème :
Le champ type_demandeur est récupéré à partir de request.form.get('optionsRadios'), et vous tentez de l'associer à un membre de l'énumération TypeDemandeur. Cependant, la valeur que vous obtenez, "Particulier", est un peu différente de celle dans l'énumération, où la valeur attendue est "particulier" (en minuscules).Solution :
Vous devez vous assurer que la valeur récupérée du formulaire est correctement transformée pour correspondre aux membres de l'énumération. Une solution consiste à convertir la valeur en minuscules avant de l'utiliser, comme ceci :Code Python Modifié :
pythonنسختحرير
@app.route('/submit', methods=['POST'])
def submit():
try:
# Récupération des données du demandeur
nom = request.form.get('demandeur_nom', '').strip()
print(f"Nom du demandeur: {nom}")
prenom = request.form.get('demandeur_prenom')
print(f"Prénom du demandeur: {prenom}")
type_demandeur = request.form.get('optionsRadios')
print(f"Type de demandeur: {type_demandeur}")
# Validation des champs obligatoires
if not nom or not prenom or not type_demandeur:
print("Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires")
return "Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires", 400
# Conversion du type de demandeur en minuscules pour correspondre aux membres de l'énumération
type_demandeur = type_demandeur.lower()
if type_demandeur not in TypeDemandeur.__members__:
print(f"Erreur: Type de demandeur invalide: {type_demandeur}")
return "Type de demandeur invalide", 400
# Vérification si le demandeur existe déjà
existing_demandeur = Demandeur.query.filter_by(nom=nom, prenom=prenom).first()
if existing_demandeur:
print(f"Erreur: Demandeur déjà existant: {existing_demandeur}")
return "Demandeur déjà existant", 400
# Création du nouveau demandeur
new_demandeur = Demandeur(
nom=nom, prenom=prenom,
type_demandeur=TypeDemandeur[type_demandeur]
)
print(f"Nouveau demandeur créé: {new_demandeur}")
db.session.add(new_demandeur)
db.session.commit()
print("Demandeur enregistré dans la base de données")
# Redirection après succès
print("Redirection vers la page d'accueil")
return redirect(url_for('index'))
except Exception as e:
db.session.rollback()
print(f"Erreur lors de l'enregistrement : {str(e)}")
return f"Erreur lors de l'enregistrement : {str(e)}", 500
Explication des changements :
- Transformation en minuscules : Avant de vérifier si type_demandeur est un membre valide de l'énumération, on le convertit en minuscules avec type_demandeur.lower(). Cela garantit que le champ du formulaire "Particulier" sera comparé correctement avec le membre "particulier" de l'énumération.
Vérifications supplémentaires :
- Assurez-vous que la valeur type_demandeur est bien passée dans le formulaire (par exemple "Particulier" et non une autre valeur comme None ou une valeur vide).
- Si d'autres erreurs surviennent, vous pouvez imprimer les valeurs de type_demandeur et de TypeDemandeur.__members__ pour mieux comprendre où la comparaison échoue.
4o
أنت قلت:
import datetime from flask import Flask, jsonify, request, redirect, render_template import json from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from sqlalchemy import Column, Integer, String, Boolean, Date, ForeignKey, Enum from sqlalchemy.orm import relationship import enum app = Flask(__name__, static_url_path='/static') app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///autorisation.db' app.config['SECRET_KEY'] = '580594580594' db = SQLAlchemy(app) migrate = Migrate(app, db) from sqlalchemy import Column, Integer, String, Date, Enum, ForeignKey from sqlalchemy.orm import relationship from enum import Enum as PyEnum class Nature_travaux(PyEnum): Sous_accotement = "sous accotement" Sous_voirie = "sous voirie" Sous_trottoir = "sous trottoir" Sous_ouvrage_art = "sous ouvrage d'art" Souterrain = "souterrain" Operateurs_reseaux = "operateurs reseaux" Aérien = "aérien" Autres = "autres" class Type_travaux(PyEnum): Branchement_eau_potable = "Branchement d'eau potable" Branchement_reseau_eaux_usees = "Branchement au reseau des eaux usees" Assainissement_eaux_pluviales = "Assainissement eaux pluviales" Assainissement_eaux_usees = "Assainissement eaux usees" Telecommunication = "Télécommunications" Raccordement_reseau_gaz = "Raccordement au reseau de gaz" Raccordement_electricite = "Raccordement de l'electricite" Autres = "autres" class TypeDemandeur(PyEnum): particulier = "Particulier" service_public = "Service public" maitre_oeuvre = "Maître d’œuvre" entreprise = "Entreprise" class Demandeur(db.Model): __tablename__ = 'demandeurs' id = Column(Integer, primary_key=True, autoincrement=True) nom = Column(String, nullable=False) prenom = Column(String, nullable=False) date_Naissance = Column(Date, nullable=True) lieuNaissance = Column(String, nullable=True) sexe = Column(String, nullable=True) adresse = Column(String, nullable=True) telephone = Column(String, nullable=True) fax = Column(String, nullable=True) email = Column(String, nullable=True) type_demandeur = Column(Enum(TypeDemandeur), nullable=False) travaux = relationship('Travaux', backref='demandeur') class Travaux(db.Model): __tablename__ = 'travaux' id = Column(Integer, primary_key=True, autoincrement=True) Pièces_jointes = Column(String, nullable=True) type_travaux = Column(Enum(Type_travaux), nullable=True) Nature_travaux = Column(Enum(Nature_travaux), nullable=True) # Corrected to Nature_travaux pk_debut = Column(Integer, nullable=True) pk_fin = Column(Integer, nullable=True) profondeur = Column(Integer, nullable=True) date_debut = Column(Date, nullable=True) duree_travaux = Column(Integer, nullable=True) demandeur_id = Column(Integer, ForeignKey('demandeurs.id'), nullable=False) def set_pieces_jointes(self, pieces): self.Pièces_jointes = ",".join(pieces) def get_pieces_jointes(self): return self.Pièces_jointes.split(",") if self.Pièces_jointes else [] class Contractant(db.Model): __tablename__ = 'contractant' id = Column(Integer, primary_key=True, autoincrement=True) NIF = Column(String, nullable=True) nombres_ilots = Column(Integer, nullable=True) nom = Column(String, nullable=False) prenom = Column(String, nullable=False) nom_bureau_etude = Column(String, nullable=True) adresse = Column(String, nullable=True) telephone = Column(String, nullable=True) fax = Column(String, nullable=True) email = Column(String, nullable=True) @app.route('/') def form(): return render_template('dash/forms.html') @app.route('/submit', methods=['POST']) @app.route('/submit', methods=['POST']) def submit(): try: # Récupération des données du demandeur nom = request.form.get('demandeur_nom', '').strip() print(f"Nom du demandeur: {nom}") prenom = request.form.get('demandeur_prenom') print(f"Prénom du demandeur: {prenom}") type_demandeur = request.form.get('optionsRadios') print(f"Type de demandeur: {type_demandeur}") # Validation des champs obligatoires if not nom or not prenom or not type_demandeur: print("Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires") return "Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires", 400 # Conversion du type de demandeur en minuscules pour correspondre aux membres de l'énumération type_demandeur = type_demandeur.lower() if type_demandeur not in TypeDemandeur.__members__: print(f"Erreur: Type de demandeur invalide: {type_demandeur}") return "Type de demandeur invalide", 400 # Vérification si le demandeur existe déjà existing_demandeur = Demandeur.query.filter_by(nom=nom, prenom=prenom).first() if existing_demandeur: print(f"Erreur: Demandeur déjà existant: {existing_demandeur}") return "Demandeur déjà existant", 400 # Création du nouveau demandeur new_demandeur = Demandeur( nom=nom, prenom=prenom, type_demandeur=TypeDemandeur[type_demandeur] ) print(f"Nouveau demandeur créé: {new_demandeur}") db.session.add(new_demandeur) db.session.commit() print("Demandeur enregistré dans la base de données") # Redirection après succès print("Redirection vers la page d'accueil") return redirect(url_for('index')) except Exception as e: db.session.rollback() print(f"Erreur lors de l'enregistrement : {str(e)}") return f"Erreur lors de l'enregistrement : {str(e)}", 500 with open('moock_test.json') as f: db_geocoding = json.load(f) @app.route('/reverseGeocoding', methods=['GET']) def reverse_geocoding(): lat = request.args.get('lat') lon = request.args.get('lon') location_key = f"{lat},{lon}" if location_key in db_geocoding['reverseGeocoding']: return jsonify(db_geocoding['reverseGeocoding'][location_key]) else: return jsonify({'error': 'Coordinates not found'}), 404 if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=3000)قال ChatGPT:
Votre code présente une implémentation de plusieurs fonctionnalités dans une application Flask, mais il y a quelques points à corriger ou optimiser. Je vais vous donner des conseils et clarifications sur les problèmes potentiels, notamment au niveau de la gestion des données de formulaire, de la création de nouveaux demandeurs, et de la validation des entrées.1. Erreur liée à la casse des valeurs Enum
Vous avez mentionné précédemment une erreur où la valeur Particulier ne correspondait pas à la valeur attendue dans l'énumération TypeDemandeur. Voici un ajustement que vous avez déjà commencé, mais quelques améliorations supplémentaires sont nécessaires.- Lors de la réception de la valeur de optionsRadios, vous effectuez une conversion en minuscules, mais cela ne correspond toujours pas à la structure de l'énumération qui a des majuscules et minuscules spécifiques. Une meilleure approche serait de ne pas modifier la casse des valeurs de l'énumération ou de faire correspondre directement les valeurs sans conversion de casse.
2. Simplification de la conversion de type_demandeur
Si vous avez besoin de faire correspondre la valeur au format correct dans l'énumération, vous pouvez utiliser une approche plus directe. Il suffira de comparer directement sans conversion en minuscules.Voici une version améliorée de la validation et de la création du demandeur :
python
نسختحرير
@app.route('/submit', methods=['POST'])
def submit():
try:
# Récupération des données du demandeur
nom = request.form.get('demandeur_nom', '').strip()
print(f"Nom du demandeur: {nom}")
prenom = request.form.get('demandeur_prenom')
print(f"Prénom du demandeur: {prenom}")
type_demandeur = request.form.get('optionsRadios')
print(f"Type de demandeur: {type_demandeur}")
# Validation des champs obligatoires
if not nom or not prenom or not type_demandeur:
print("Erreur: Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires")
return "Les champs 'nom', 'prenom' et 'type_demandeur' sont obligatoires", 400
# Vérification de la validité du type_demandeur
if type_demandeur not in TypeDemandeur.__members__:
print(f"Erreur: Type de demandeur invalide: {type_demandeur}")
return "Type de demandeur invalide", 400
# Vérification si le demandeur existe déjà
existing_demandeur = Demandeur.query.filter_by(nom=nom, prenom=prenom).first()
if existing_demandeur:
print(f"Erreur: Demandeur déjà existant: {existing_demandeur}")
return "Demandeur déjà existant", 400
# Création du nouveau demandeur
new_demandeur = Demandeur(
nom=nom, prenom=prenom,
type_demandeur=TypeDemandeur[type_demandeur] # Pas de conversion nécessaire ici
)
print(f"Nouveau demandeur créé: {new_demandeur}")
db.session.add(new_demandeur)
db.session.commit()
print("Demandeur enregistré dans la base de données")
# Redirection après succès
print("Redirection vers la page d'accueil")
return redirect(url_for('index'))
except Exception as e:
db.session.rollback()
print(f"Erreur lors de l'enregistrement : {str(e)}")
return f"Erreur lors de l'enregistrement : {str(e)}", 500