Я предполагаю, что у вас есть текстовый файл с содержанием username:password
.Теперь вы можете сделать что-то вроде:
PW_FILE = 'path/to/file/'
def check_credentials(username: str, password: str) -> bool:
# load content of file
with open(PW_FILE) as fh:
content = fh.read().strip('\n') # and remove newlines
credentials = content.split(':', 1) # get credentials as list `[username, password]`
return credentials == [username, password]
@app.route('/signin/', methods=['GET', 'POST'])
def signin_page():
...
if check_credentials(attempted_email, attempted_password):
return redirect(url_for('homepage'))
else:
error = "Invalid credentials. Try again."
...
В общем, вы не должны ловить неопределенное исключение, так как вы можете проглотить неожиданное поведение.Я не знаком с используемой вами платформой, но я бы предложил изменить вашу обработку ошибок, чтобы она была более конкретной, например,
@app.route('/signin/', methods=['GET', 'POST'])
def signin_page():
error = None
if request.method == "POST":
try:
attempted_email= request.form['email']
attempted_password = request.form['password']
except KeyError:
error = "Missing form data"
else:
if check_credentials(attempted_email, attempted_password):
return redirect(url_for('homepage'))
else:
error = "Invalid credentials. Try again."
return render_template("signin.html", error = error)