烧瓶中带有onclick的url_for

时间:2018-09-28 20:34:30

标签: python flask

from flask import Flask,render_template,url_for

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")


@app.route("/okay")
def okay():
    return render_template("okay.html")



if __name__ == '__main__':
    app.run(debug=True)

这是index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

</head>
<body>
    <h1>index</h1>
    <h2 onclick="{{ url_for('okay') }}">click me</h2>
    <h2><a href="{{ url_for('okay') }}">click me</a></h2>
</body>
</html>

点击我 这不起作用 也 表单操作url_for不起作用

change route and send message using socketio but socketio is working

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

在HTML元素上使用时,onclick通常会导致对诸如onclick=myFunction()这样的脚本函数的调用。

<body>
    <h1>index</h1>
    <h2 id="foo" onclick="myFunction();">click me</h2>
    <h2><a href="{{ url_for('okay') }}">click me</a></h2>
</body>

您需要添加一些Javascript代码才能使onclick=myFunction();正常工作。

function myFunction() {

    $.ajax({
        url: '/okay',
        data: JSON.stringify(data),
        method: 'POST',
        contentType: 'application/json',
        success: function(data) {
            $('#foo').replaceWith(data);
        }
    });
};