поэтому я делаю этот сайт и пытаюсь выяснить, как показать что-то на панели навигации, если пользователь вошел в систему. Я использую наследование, поэтому у меня есть моя панель навигации в макете. html , Я не уверен, как поставить условие там, чтобы оно работало со всем моим кодом на каждой странице. Я думал, что мог бы добавить оператор if, а затем определить его на каждом маршруте, но у меня есть около 20 маршрутов, и я пытаюсь найти более эффективное решение. Я кодирую в python, используя Flask. Спасибо всем за помощь.
Редактировать: я забыл добавить код
Вот моя функция входа в систему
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
name=request.form.get("name")
password = request.form.get("password")
sqlname = db.execute(text("SELECT name FROM users WHERE name=:name"),{"name":name}).fetchone()
sqlpassword = db.execute(text("SELECT password FROM users WHERE name=:name"),{"name":name}).fetchone()
if sqlname == None:
message="You are not registered with this username, please register first."
return render_template("registration.html", message=message)
else:
for passw in sqlpassword:
if passw == password:
session["name"] = name
return redirect(url_for("dashboard"))
else:
message = "Something went wrong, please try again."
return render_template("login.html", message=message)
elif "name" in session:
return redirect(url_for("dashboard"))
return render_template("login.html")
Вот мой макет. html, я просто хотите скрыть форму, если пользователь не вошел в систему
<nav>
<form class="form-inline my-2 my-lg-0" action="{{ url_for('search')}}">
<input class="form-control mr-sm-2" name="search" placeholder="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</nav>