如何从flask中添加HTML页面中的数据

时间:2019-12-16 08:17:22

标签: python html flask jinja2

@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)

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

因为用户名在任何地方都是必需的,所以我需要它的地方我将其添加到了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的了解几乎为零

1 个答案:

答案 0 :(得分: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