簡體   English   中英

jinja2.exceptions.UndefinedError: 'user' is undefined

[英]jinja2.exceptions.UndefinedError: 'user' is undefined

當用戶訪問設置頁面時,我正在嘗試在 url 中顯示我當前用戶的用戶名。 但是,當我嘗試從索引訪問設置頁面時,出現 404 錯誤

Not Found
The requested URL was not found on the server. If you entered the URL manually please check 
your spelling and try again.

以及從導航訪問任何其他頁面時出現的未定義錯誤。 我的layout.html(關注部分):

<a href="{{ url_for('user', Users_username=user.username) }}" target="_blank" rel="noopener 
noreferrer"> Settings</a>

模型.py:

class Users(db.Model, UserMixin):
       __tablename__ = "users"
       id = db.Column(db.Integer, primary_key=True)
       username = db.Column(db.String(20), unique=True, nullable=False)
       email = db.Column(db.String, unique=True, nullable=False)
       image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
       password = db.Column(db.String(60), nullable=False)
       posts = db.relationship('Post', backref='author', lazy=True)

Routes.py 中的 Function:

@app.route("/user/<Users_username>" , methods=["GET", "POST"])
def user(Users_username):

user = Users.query.filter_by(username=Users_username).first()
if user is None:
    flash(user)
    return redirect(url_for('register'))
return render_template("settings.html", user=user)

我也嘗試了每一步,本文中的每一步,但沒有任何回報Python Flask 在 URL 中顯示用戶名它唯一的區別是當我將 layout.html 從

<a href="{{ url_for('user', Users_username=user.username) }}" target="_blank" rel="noopener 
noreferrer">Settings</a>

<a href="{{ url_for('user', Users_username=g.user) }}" target="_blank" rel="noopener 
noreferrer">Settings</a>

從導航訪問任何其他頁面時,我沒有收到未定義的錯誤,但仍然收到 404 錯誤。 在此先感謝。我從 3 天起就一直堅持這個問題,沒有任何文章或視頻有回報。

經過 3 天的研究和對答案的渴望,閱讀了多篇文章,觀看了無數視頻,只是在布局中隨機嘗試了這個。html 有效!!

<a href="{{ url_for('user', Users_username = current_user.username ) }}" 
target="_blank" rel="noopener noreferrer">Settings</a>

現在無需在設置功能中進行數據庫查詢!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM