gpt4 book ai didi

javascript - @app.route 在没有重定向的情况下无法工作

转载 作者:行者123 更新时间:2023-12-03 04:07:55 28 4
gpt4 key购买 nike

如果我重定向到另一个页面@app.route('/results'),这个函数就可以完美工作,但我很难让它在同一页面中工作而无需重新加载:

@app.route('/')
def static_file():
return app.send_static_file('index.html')

@app.route('/')
def results():
headers = {
'X-ApiKey': 'xxxxxxxxxxxxxxxx',
}

data = {'data': request.args.get('data')}

results = requests.post('https://apiv2.indico.io/personality', headers=headers, data=data)
return results.text

我想在同一页面(输入框下方)显示api调用的结果

<form action="" onsubmit="return false";>
<strong> Try It <br><br>
</strong><br>
<input type="text" name="data"><br><br>
<input type="submit" onclick="showResults();">
<label id:Results>Your Result: </label>
<p><span id='display'></span></p>
</form>

我还添加了一些 JS:

 <script language="JavaScript">
function showResults() {
document.getElementById('display').innerHTML =
document.getElementById("Results").value;
}
</script>

我的代码有什么问题吗?我正在使用 Flask 框架。

最佳答案

如果我理解正确的话,你想要实现的是在 Flask 微框架中编写 RESTful API,这将允许你获得一些结果并显示在你的页面上而无需重新加载。如果是这样,那么您的方法是错误的。

首先,您不能使用通用 URL 路由多个函数:

@app.route('/common_route')
def foo():
pass
@app.route('/common_route')
def bar():
pass

如果加载http://yourwebsite/common_route,则无法确定要调用哪个函数。 .

为了避免页面重新加载,您应该使用 Flask-RESTful 模块并实现 API 来获取结果。

import flask-restful
class Results(Resource):
def __init__(self):
super(Results)
#for GET requests
def get(self):
#your code here
pass
#for POST requests
def post(self):
#your code here
pass

api = Api(app)
api.add_resource(Results(),'/api/results')

然后您就可以获得结果带有 JS 和 jQuery 代码:https://www.w3schools.com/jquery/jquery_ajax_get_post.asp

关于javascript - @app.route 在没有重定向的情况下无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44467233/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com