我正在尝试使用flask + html +其他python脚本+ JQuery构建一个非常简单的网站。到目前为止,它的html + JQuery部分正在工作,但每当我尝试从我的python脚本返回值时,它返回undefined,我不知道为什么。
HTML:
{% extends "layout.html" %}
{% block content %}
<script type=text/javascript>
$(function() {
$("#submitBtn").click(function() {
$.ajax({
type: "GET",
url: $SCRIPT_ROOT + "/task/",
contentType: "application/xml; charset=utf-8",
data: { echoValue: $('input[name="echoText"]').val() },
success: function(data) {
alert(data.value)
$('#echoResult').text(data.value);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
});
</script>
<strong>Enter a value:</strong>
<input type='text' size='10' id='echoText' name='echoText'>
<button type='button' id='submitBtn' name='submitBtn'>Submit via AJAX</button><br /><br />
<strong></strong>
</br>
{% endblock %}
烧瓶中:
from flask import Flask, jsonify, render_template, request, Response
import re
from MyFunction import *
app = Flask(__name__)
app.config['SECRET_KEY'] = 'F34TF$($e34D';
@app.route('/')
def index():
return render_template('index.html')
@app.route("/task/")
def some_function():
testdata = {"value": request.args.get('echoValue')}
return Response(test(testdata['value']))
if __name__ == '__main__':
app.run(port=8080, debug=True)
python脚本:
def test(value):
return value
答案 0 :(得分:0)
我稍微更改了您的功能,从变量的开头删除$
符号,并从返回的值中删除.data
。要设置输入值,我使用了val()
方法。此外,您根本不需要SCRIPT_ROOT
:
<script type=text/javascript>
$(function() {
$("#submitBtn").click(function() {
$.ajax({
type: "GET",
url: "/task/",
contentType: "application/xml; charset=utf-8",
data: { echoValue: $('input[name="echoText"]').val() },
success: function(data) {
alert(data)
$('#echoResult').val(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
});
</script>