簡體   English   中英

出現錯誤:AttributeError: 'Flask' 對象沒有屬性 'login_manager'

[英]Getting an error: AttributeError: 'Flask' object has no attribute 'login_manager'

我正在嘗試運行我的 Flask 應用程序,但每次加載我的索引頁面時,它都會給我錯誤:AttributeError: 'Flask' object has no attribute 'login_manager'。 在我輸入這個特定的代碼之前它可以工作

bp = flask.Blueprint("bp", __name__, template_folder="./build")

@bp.route('/index')
@login_required
def index():
    # TODO: insert the data fetched by your app main page here as a JSON
    DATA = {"your": "data here"}
    data = json.dumps(DATA)
    return flask.render_template(
        "index.html",
        data=data,
    )

app.register_blueprint(bp)

這是我當前可以工作的代碼

@app.route("/index", methods=["GET", "POST"])
def index():
    global current_user
    if not current_user:
        return flask.redirect(flask.url_for("login"))
    if flask.request.method == "GET":
        track_name, genius_link, track_artist, track_image, track_url = render()
        # If user has no favorite artists, redirect back to profile.
        if track_name == None:
            return flask.redirect(flask.url_for("profile"))
        return flask.render_template(
            "index.html",
            variable=track_name,
            variable1=genius_link,
            variable2=track_artist,
            variable3=track_image,
            variable4=track_url,
        )
    else:
        valid_artist = validate_and_insert_artist(flask.request.form["artistId"])
        if not valid_artist:
            return flask.render_template("index.html", error=True)
        else:
            track_name, genius_link, track_artist, track_image, track_url = render()
            # If user has no favorite artists, redirect back to profile.
            if track_name == None:
                return flask.redirect(flask.url_for("profile"))
            return flask.render_template(
                "index.html",
                variable=track_name,
                variable1=genius_link,
                variable2=track_artist,
                variable3=track_image,
                variable4=track_url,
            )

我不知道為什么我一輸入藍圖代碼,它就停止工作並給我那個錯誤

這是我的 login.html

@app.route("/login", methods=["GET", "POST"])
def login():
    global current_user
    if current_user:
        return flask.redirect(flask.url_for("profile"))
    if flask.request.method == "GET":
        return flask.render_template("login.html")
    if flask.request.method == "POST":
        username = flask.request.form["username"]
        cursor.execute(
            "SELECT user_name FROM public.users WHERE user_name = %s", [username]
        )
        results = cursor.fetchall()
        if len(results) != 0:  # if a user exists, "log" them in
            current_user = username
            return flask.redirect(flask.url_for("profile"))
        else:
            return flask.render_template("login.html", error=True)

您需要閱讀@login_required的 Flask 文檔。 一旦添加了需要用戶登錄的方法,就需要提供用戶可以登錄的方法。

或者您只是想刪除@login_required

暫無
暫無

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

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