【问题标题】:jinja2.exceptions.UndefinedError: 'user' is undefinedjinja2.exceptions.UndefinedError:“用户”未定义
【发布时间】:2021-11-20 08:35:22
【问题描述】:

当用户访问设置页面时,我正在尝试在 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 中的函数:

@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 displaying username in 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 天,没有任何文章或视频得到回报。

【问题讨论】:

    标签: python flask url routes flask-sqlalchemy


    【解决方案1】:

    经过3天的研究和渴望答案,阅读了多篇文章,观看了无数视频,只是在layout.html中随机尝试了这个有效!

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

    现在无需在设置功能中查询数据库了!

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 2020-03-08
      相关资源
      最近更新 更多