J'ai créer une fonction pour se connecter à un db qui imprime un « échec de la connexion à db » un message si aucune connexion est faite:impression à l'exception des messages dans les modèles de flacon via jinja2
def connectToDB():
connectionString = 'dbname=reportingdb1 user=red_gui password=RadnfgoInd host=10.100.51.42'
try:
return psycopg2.connect(connectionString)
except:
print ("Failure to connect to db")
Dans mon point de vue. py fichiers dans la section index, cette fonction est appelée immédiatement et dans mon environnement de test imprime l'instruction d'exception sauf dans mon terminal lorsque j'utilise délibérément les mauvaises informations d'identification pour la base de données (à des fins de test).
####Index Page
@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index():
connectToDB()
form = StaffNames()
if form.validate_on_submit():
return redirect('/results')
return render_template('index.html',title='Search Page',form=form)
Mon problème est, je veux imprimer ce message sur la page Web. J'ai essayé d'utiliser return
au lieu de print
et cela n'a pas fonctionné. J'ai aussi essayé d'essayer de stocker le message dans une exception variable, dans mes modèles/fichier index.html, appelez-le par jinja2 bouclés exemples de brackets.For J'essayées: à views.py
except:
noconnect = "Failure to connect to db"
puis dans mon index.html:
{{ noconnect }}
Mais cela aussi n'a pas fonctionné. Quelle serait la meilleure pratique pour le faire? Merci
Merci, mais je reçois erreur 'variable locale' forme 'référencé avant l'affectation » – nmh
Juste pour ajouter, cela ne se produit que lorsque je saisis délibérément le mauvais mot de passe pour le db- l'ensemble de l'application virtualenv échoue à ce stade. Cela signifie que je ne peux pas réellement regarder la page d'index pour voir si l'erreur de connexion à DB que j'ai essayé de générer apparaît. L'application échoue plutôt que de me dire simplement que je ne peux pas me connecter à la base de données. Comment puis-je empêcher l'application de tomber sur chaque connexion infructueuse à la base de données? – nmh
En fait, je l'ai mis au point, le 'form = StaffNames()' devait être en dehors de l'instruction 'if', donc je l'ai placé directement après' def index(): 'et cela a fonctionné. Je vais accepter votre réponse (comme c'était parfait sinon!) Si vous changez ce peu. – nmh