首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML按钮对象不指向预期的链接

HTML按钮对象不指向预期的链接
EN

Stack Overflow用户
提问于 2019-01-14 18:19:33
回答 2查看 30关注 0票数 0

我试图通过使用我编码的按钮来测试我的网站,其中一个按钮应该会带我回到我的网站的主页。然而,当我按下这个按钮时,页面似乎只是刷新并保持在原来的位置(我没有返回到主页)。

我检查了所有提供的函数/链接的名称,以确保我为按钮指定了正确的目的地。

下面是我的“上传”页面的代码,它应该允许用户上传一个名称和一个文件。

代码语言:javascript
复制
<div id="form">
            <form action="{{ url_for('algorithm') }}" method="POST" enctype="multipart/form-data">
                <div id="algo-header"><h1><u>New Algorithm:</u></h1></div>
                <div id="field-names">
                    User Name:
                    <br><br><br>
                    Algorithm:
                </div>
                <div id="fields">
                    <input class="text" type = "text" name = "usr" />
                    <br><br><br>
                    <input class="text" type="file" id="file" name="file" />
                </div>
                <div id="buttons">
                    <br>
                    <input class="submit" type="submit" style="width: 60px" value="Submit" />
                    &nbsp;&nbsp;&nbsp;
                    <button id="home-button" class="submit" style="width: 130px">Return to Homepage</button>
                </div>
            </form>
        </div>
        <br>
        <script type="text/javascript">
            document.getElementById("home-button").onclick =
                function() {
                    location.href = "{{ url_for('welcome') }}";
                };
        </script>

下面是我网站主应用程序中的“欢迎”功能:

代码语言:javascript
复制
@app.route("/")
def welcome():
    rows = get_all_algos()
    return render_template("index.html", rows=rows)

下面是“算法”函数,它将我带到"/algorhithm“页面:

代码语言:javascript
复制
@app.route("/algorithm", methods=["GET", "POST"])
def algorithm():
    print('entrypoint')
    if request.method == "POST":
        if request.form["file"] != "":
            try:
                print('link-friend')
                usr = request.form["usr"]
                ln = request.form["file"]

                with sql.connect("database.db") as con:
                    c = con.cursor()
                    c.execute("INSERT INTO algorithms (user, source) VALUES (?,?)", (usr, ln))
                    con.commit()
                    msg = "Algorithm Added Successfully"
            except:
                con.rollback()
                msg = "Error in adding algorithm"
            finally: 
                return render_template("results.html", msg=msg)
                con.close()
        else:
            if "file" not in request.files:
                flash("No file part")
                return redirect(request.url)
            file = request.files["file"]
            if file.filename == "":
                flash("No selected file")
                return redirect(request.url)
            if file and allowed_file(file.filename):
                usr = request.form["usr"]
                filename = secure_filename(file.filename)
                print(file.filename)
                print(filename)
                file.save(os.path.join(app.config["UPLOAD_FOLDER"], filename))
                c = con.cursor()
                c.execute("INSERT INTO algorithms (user, source) VALUES (?,?)", (usr, filename))
                con.commit()
                msg = "Algorithm Added Successfully"
                return render_template("results.html", msg=msg)
                con.close()
               # return redirect(url_for("uploaded_file",
               #                       filename=filename))
    return render_template("new_algo.html")

当我点击按钮(在一个带有路由"/algorithm“的网页上)时,我应该被带回到索引/主页("/"),但是,我仍然停留在”/algorithm“上。

*注:我使用的是水瓶,这就是为什么我使用{{ url_for() }}格式的链接。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-15 16:30:42

谢谢你的答复,但我相信我已经解决了这个问题。似乎在代码的<form>部分中,它的功能与表单的功能相匹配(当按下页面时,页面被提交,再次打开/algorithm脚本,使我保持在同一个页面上。

<button>对象移到<form>部分之外解决了我的问题。

票数 0
EN

Stack Overflow用户

发布于 2019-01-14 18:25:46

尝试从您的“表单操作”('algorithm')函数重定向,而不是使用html。

代码语言:javascript
复制
return redirect('/welcome')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54187074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档