【问题标题】:How to add the data in HTML page from Flask如何从 Flask 在 HTML 页面中添加数据
【发布时间】:2019-12-16 08:17:22
【问题描述】:
@blueprint.route("/register/", methods=["GET", "POST"])
def register():
    """Register new user."""
    form = RegisterForm(request.form)
    print(form, form.username.data)
    if form.validate_on_submit():
        User.create(
            username=form.username.data,
            email=form.email.data,
            password=form.password.data,
            active=True,
        )
        flash("Thank you for registering. You can now log in.", "success")
        return redirect(url_for("public.home"))
    else:
        flash_errors(form)
    return render_template("public/register.html", form=form)

这是我的注册码,我面临一个挑战,我必须将用户名添加到 UI 页面,并且该用户名保留在所有不同部分的页面中(在我正在构建的网站上)。

由于到处都需要用户名,我已将我需要的部分添加到 base.html 并在我的所有其他页面中导入/加载。

目前,我无法设置从数据库中获取用户名并将其添加到 HTML 页面的部分。

在HTML页面的这个部分,我要导入这个

              <div class="user-card user-card--skin-dark notification-item-padding-x" style="background-image: '{{  asset_url_for("media/misc/bg-1.jpg")}}'">
                <div class="user-card__avatar">
                  <img alt="Pic" class="hidden" src="{{ asset_url_for('media/users/300_25.jpg') }}">
                   <span class="badge badge--lg badge--rounded badge--bold font-success">
        {{user.username}}
                  </span>
                </div>
                <div class="user-card__name">
                  {{user.first_name}
                </div>

              </div>

但我无法添加此内容。谁能帮我解决这个问题?

ps 我对前端技术不太了解,对 javascript 的了解几乎是 0

【问题讨论】:

  • 可能是因为您没有将上下文发送到 render_template 吗?用户类是否将其值自动发送到 html 页面?我会尝试在 html 页面中检查 {{ form }} 输出的内容,因为这是您发送给模板的唯一上下文。
  • @JimErginbash 我正在测试这个,我可以从 html 将数据发送到后端,但从后端到 html 我正在测试它。问题是我的项目是用 cookiecutter 烧瓶做的,所有的东西都在当前的代码库中搞砸了,所以一次修复一件事

标签: python html flask jinja2


【解决方案1】:

检查“用户加载器功能”功能。代码如下:

在models.py中

from app import login
@login.user_loader
def load_user(id):
    return User.query.get(int(id))

在 routes.py 中

from flask_login import current_user, login_user
from app.models import User
@blueprint.route("/register/", methods=["GET", "POST"])
def register():
    """Register new user."""
    form = RegisterForm(request.form)
    print(form, form.username.data)
    if form.validate_on_submit():
        User.create(
            username=form.username.data,
            email=form.email.data,
            password=form.password.data,
            active=True,
        )
        flash("Thank you for registering. You can now log in.", "success")
        return redirect(url_for("public.home"))
    else:
        flash_errors(form)
    return render_template("public/register.html", form=form)

在html中

      <div class="user-card user-card--skin-dark notification-item-padding-x" style="background-image: '{{  asset_url_for("media/misc/bg-1.jpg")}}'">
        <div class="user-card__avatar">
          <img alt="Pic" class="hidden" src="{{ asset_url_for('media/users/300_25.jpg') }}">
           <span class="badge badge--lg badge--rounded badge--bold font-success">
{{current_user.username}}
          </span>
        </div>
        <div class="user-card__name">
          {{user.first_name}
        </div>

      </div>

为了更好的解释,请查看link

【讨论】:

  • 谢谢,它自己,我不得不修改核心基础库。这有助于我更好地理解
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
相关资源
最近更新 更多