我在與Flask的項目,我想在用戶登錄時創建會話。我按照文檔,但我的腳本不起作用,並在打開後直接關閉。所以,沒有辦法在我的瀏覽器中啓動我的項目。會議與燒瓶(python)
我的代碼是以下之一:
#! /usr/bin/python
# -*- coding:utf-8 -*-
from flask import Flask, url_for, request, session
import mysql.connector
app = Flask(__name__)
@app.route('/connexion/', methods=['GET', 'POST'])
def connexion():
if request.method == 'POST':
if request.form['mail'] == "":
return affichage_form_mail(erreur = "001")
else:
cnx = mysql.connector.connect(user='admin', password='mysql', host='localhost', database='colocation')
cursor = cnx.cursor()
query = ("SELECT COUNT('email'), password FROM user WHERE email = '" + request.form['mail'] + "'")
cursor.execute(query)
i = cursor.fetchone()
if str(i[0]) != "1":
# on regarde le nombre d'enregistrements. Si diff de 0, on réaffiche le formulaire avec un code d'erreur 001
return affichage_form_mail(erreur = "001")
else:
# on vérifie le mdp
if request.form['password'] != str(i[1]):
# mot de passe faux, on reaffiche form_login avec en argument l'erreur et le mail
return affichage_form_mail(request.form['mail'], "002")
else:
# l'user est connecté. On le redirige vers son compte et on met une variable dans la session
session['connect'] = True
cursor.close()
cnx.close()
else:
return affichage_form_mail()
def affichage_form_mail(mail='Adresse email', erreur='none'):
aff_erreur = ""
if erreur == "001" :
aff_erreur = "Email inexistant"
if erreur == "002" :
aff_erreur = "Mot de passe inccorect"
if erreur == "003" :
aff_erreur = "Il faut indiquer email"
return aff_erreur + '<form action="" method="post"><input type="text" name="mail" value= "' + mail + '" /><input type="text" name="password" /><input type="submit" value="Envoyer" /></form>'
if __name__ == '__main__':
app.secret_key = "dd"
app.run(debug=True)
我知道我的祕密密鑰是不那麼安全的,但它是不是問題的關鍵。請注意,我嘗試了沒有祕密密鑰(不要問爲什麼......),我可以在Chrome中打開我的項目,但我當然有一個錯誤消息,告訴我必須輸入密鑰。
我希望你能幫助我...我檢查了官方文檔和我複製粘貼,以確保避免任何錯誤,但它仍然無法正常工作。
從已打開的命令行運行腳本,以便看到可能發生的任何錯誤。此外,您發佈的代碼還遠遠沒有完成。 – ThiefMaster
我用完整的代碼編輯了我的問題:) – DescampsAu
現在告訴我們在看到輸出的終端中運行文件時得到的錯誤。 – ThiefMaster