使用 jQuery 中 GET 请求的信息通过 Flask 显示转换后的结果
Using info from GET request in jQuery to display transformed result through Flask
我正在尝试根据他们所做的特定选择发送客户信息。我想使用 GET 请求,因为我没有更改服务器上的任何信息。但是,我不知道如何从 GET 请求中实际访问任何信息;我一直在研究在 Flask 中使用查询字符串,但运气不佳。在返回到 javascript 后,我需要对结果进行额外的操作,所以我想将我的响应保留在成功函数中,因为我在下面有它,而不是使用任何类型的模板。
我唯一能真正负担得起改变的是数据的发送方式(如果它需要是 JSON 或字符串以外的其他东西)以及如何在 Flask 中访问它。这可能吗?我该怎么做?
app.py
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
def myFunc(s):
return str(s) + "!"
@app.route("/")
def index():
# resp = myFunc(selectedOption)
# return resp
if __name__ == '__main__':
app.run(debug=True)
index.html
<!DOCTYPE html>
<html>
<head>
<title>getTest</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="{{ url_for('static', filename='script.js')}}"></script>
</head>
<body>
<select id="options">
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
</select>
<button class="btn btn-default" id="submit">Submit</button>
<p id="demo"></p>
</body>
</html>
script.js
$(document).ready(function() {
$("#submit").click(function() {
var selectedOption = $("#options").val();
$.ajax({
url: "/",
method: "GET",
data: selectedOption, //open to changing
success: function(result) {
$("#demo").html(result);
}
});
});
});
您应该更改 ajax 调用,以便它使用命名参数,而不是仅仅将数据设置为等于您的选项
$.ajax({
url: "/",
method: "GET",
data: {'selectedOption': selectedOption}, //open to changing
success: function(result) {
$("#demo").html(result);
}
});
通过request.args.get('selectedOption')
赞
访问查询字符串
@app.route("/")
def index():
resp = myFunc(request.args.get('selectedOption'))
return resp
我正在尝试根据他们所做的特定选择发送客户信息。我想使用 GET 请求,因为我没有更改服务器上的任何信息。但是,我不知道如何从 GET 请求中实际访问任何信息;我一直在研究在 Flask 中使用查询字符串,但运气不佳。在返回到 javascript 后,我需要对结果进行额外的操作,所以我想将我的响应保留在成功函数中,因为我在下面有它,而不是使用任何类型的模板。
我唯一能真正负担得起改变的是数据的发送方式(如果它需要是 JSON 或字符串以外的其他东西)以及如何在 Flask 中访问它。这可能吗?我该怎么做?
app.py
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
def myFunc(s):
return str(s) + "!"
@app.route("/")
def index():
# resp = myFunc(selectedOption)
# return resp
if __name__ == '__main__':
app.run(debug=True)
index.html
<!DOCTYPE html>
<html>
<head>
<title>getTest</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="{{ url_for('static', filename='script.js')}}"></script>
</head>
<body>
<select id="options">
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
</select>
<button class="btn btn-default" id="submit">Submit</button>
<p id="demo"></p>
</body>
</html>
script.js
$(document).ready(function() {
$("#submit").click(function() {
var selectedOption = $("#options").val();
$.ajax({
url: "/",
method: "GET",
data: selectedOption, //open to changing
success: function(result) {
$("#demo").html(result);
}
});
});
});
您应该更改 ajax 调用,以便它使用命名参数,而不是仅仅将数据设置为等于您的选项
$.ajax({
url: "/",
method: "GET",
data: {'selectedOption': selectedOption}, //open to changing
success: function(result) {
$("#demo").html(result);
}
});
通过request.args.get('selectedOption')
赞
@app.route("/")
def index():
resp = myFunc(request.args.get('selectedOption'))
return resp