Я пытаюсь поработать с сообщениями, прошивающая колбу, а также пытаюсь лучше понять Flask_sqlalchemy и SQL в целом.
Я пытаюсь получить сообщение, чтобы появиться, если пользователь входит в неверное Адрес электронной почты мне удалось найти решение, которое работает, но я запутался, почему подобное решение не делает. < /p>
@app.route('/login', methods=["GET", "POST"])
def login():
email = request.form.get("email")
password = request.form.get("password")
if request.method == "POST":
user = User.query.filter_by(email=email).first()
if not user:
flash("sorry that email doesn't exist")
return redirect(url_for('login'))
elif not check_password_hash(user.password, password):
flash("Password incorrect, please try again")
return redirect(url_for('login'))
else:
login_user(user)
return redirect(url_for('secrets', id=user.id))
return render_template("login.html")
< /code>
Этот код работает совершенно хорошо, и я получаю всплывающее сообщение об ошибке, как и ожидалось, однако, когда я настраиваю < /p>
user = User.query.filter_by(email=email).first()
< /code>
to < /p>
user = db.session.execute(db.select(User).filter_by(email=email)).scalar_one()
< /code>
Итак, блок кода выглядит так .. < /p>
@app.route('/login', methods=["GET", "POST"])
def login():
email = request.form.get("email")
password = request.form.get("password")
if request.method == "POST":
user = db.session.execute(db.select(User).filter_by(email=email)).scalar_one()
if not user:
flash("sorry that email doesn't exist")
return redirect(url_for('login'))
elif not check_password_hash(user.password, password):
flash("Password incorrect please try again")
return redirect(url_for('login'))
else:
login_user(user)
return redirect(url_for('secrets', id=user.id))
return render_template("login.html")
< /code>
Тогда код выбрасывает следующую ошибку < /p>
exc.noresultfound (
sqlalchemy.exc.noresultfound : Строка не было обнаружено, если потребовалось < /p>
< /blockquote>
Я знаю, что эта ошибка поднимается, потому что запись базы данных не найдена, но из чтение Документация, которую я заставил полагать, что не существует различий между использованием двух методов и тем, что db.session.execute (db.select ())
является просто обновленной версией user.query И до сих пор я смог использовать оба взаимозаменяемого на протяжении всего моего кода без каких -либо проблем. Я получаю разные результаты с тем, что я Считается, что это две строки кода, которые в основном делают то же самое, или проблема с моим кодом, и эти два метода взаимозаменяемы?>
Я пытаюсь поработать с сообщениями, прошивающая колбу, а также пытаюсь лучше понять Flask_sqlalchemy и SQL в целом. Я пытаюсь получить сообщение, чтобы появиться, если пользователь входит в неверное Адрес электронной почты мне удалось найти решение, которое работает, но я запутался, почему подобное решение не делает. < /p> [code]@app.route('/login', methods=["GET", "POST"]) def login(): email = request.form.get("email") password = request.form.get("password") if request.method == "POST": user = User.query.filter_by(email=email).first() if not user: flash("sorry that email doesn't exist") return redirect(url_for('login')) elif not check_password_hash(user.password, password): flash("Password incorrect, please try again") return redirect(url_for('login')) else: login_user(user) return redirect(url_for('secrets', id=user.id)) return render_template("login.html") < /code> Этот код работает совершенно хорошо, и я получаю всплывающее сообщение об ошибке, как и ожидалось, однако, когда я настраиваю < /p> user = User.query.filter_by(email=email).first() < /code> to < /p> user = db.session.execute(db.select(User).filter_by(email=email)).scalar_one() < /code> Итак, блок кода выглядит так .. < /p> @app.route('/login', methods=["GET", "POST"]) def login(): email = request.form.get("email") password = request.form.get("password") if request.method == "POST": user = db.session.execute(db.select(User).filter_by(email=email)).scalar_one() if not user: flash("sorry that email doesn't exist") return redirect(url_for('login')) elif not check_password_hash(user.password, password): flash("Password incorrect please try again") return redirect(url_for('login')) else: login_user(user) return redirect(url_for('secrets', id=user.id)) return render_template("login.html")
< /code> Тогда код выбрасывает следующую ошибку < /p>
exc.noresultfound ( sqlalchemy.exc.noresultfound : Строка не было обнаружено, если потребовалось < /p> < /blockquote> Я знаю, что эта ошибка поднимается, потому что запись базы данных не найдена, но из чтение Документация, которую я заставил полагать, что не существует различий между использованием двух методов и тем, что db.session.execute (db.select ()) [/code] является просто обновленной версией user.query И до сих пор я смог использовать оба взаимозаменяемого на протяжении всего моего кода без каких -либо проблем. Я получаю разные результаты с тем, что я Считается, что это две строки кода, которые в основном делают то же самое, или проблема с моим кодом, и эти два метода взаимозаменяемы?>
У меня есть этот запрос linq:
var test = (...
where ...
&& test.SL.Any(line =>
line.ServiceCode == serviceCode
&& line.DateOfServiceStart >= dateOfServiceStart
&& (line.DateOfServiceEnd == null || line.DateOfServiceEnd , чем 1 апреля 2024 г.,...
У меня есть этот запрос linq:
var test = (...
where ...
&& test.SL.Any(line =>
line.ServiceCode == serviceCode
&& line.DateOfServiceStart >= dateOfServiceStart
&& (line.DateOfServiceEnd == null || line.DateOfServiceEnd , чем 1 апреля 2024 г.,...
У меня есть указатель TrueSleexex, инициализированный со Sleepex. Когда я изучаю отладчик, эти указатели показывают разные значения:
SleepEx 0x00007ff7c854ef28
TrueSleepEx 0x00007ffb22c27180
Когда я называю функцию любым из них, она не генерирует...
У меня есть указатель TrueSleexex, инициализированный со Sleepex. Когда я изучаю отладчик, эти указатели показывают разные значения:
SleepEx 0x00007ff7c854ef28
TrueSleepEx 0x00007ffb22c27180
У меня есть указатель TrueSleexex, инициализированный со Sleepex. Когда я изучаю отладчик, эти указатели показывают разные значения:
SleepEx 0x00007ff7c854ef28
TrueSleepEx 0x00007ffb22c27180