在Flask上,有没有办法运行一个python脚本而不会转到另一个页面?即没有重定向?有没有办法从网站运行python脚本?
我想要做的是能够按下页面上的按钮,然后触发一个Python函数,它将返回一些数据并在同一页面上显示数据。 Flask有可能吗?
在Flask上,有没有办法运行一个python脚本而不会转到另一个页面?即没有重定向?有没有办法从网站运行python脚本?
我想要做的是能够按下页面上的按钮,然后触发一个Python函数,它将返回一些数据并在同一页面上显示数据。 Flask有可能吗?
解决方案是AJAX。
为链接指出 http://api.jquery.com/jquery.ajax/
$.ajax({
url: "url defined in Flask",
method: "GET"
}).done(function() {
// Change your DOM
});
API中定义瓶:
创建RESTful API中。
http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask
定义的路线的URL。编写要调用的函数。返回为JSON。在done函数中,您可以更改DOM元素。
下面是这样一个程序的例子:
from flask import Flask, render_template_string, request, jsonify
import wikipedia
app = Flask(__name__)
index_html='''
<!DOCTYPE html>
<html lang="en">
<head><title>Wiki Lookup Example</title></head>
<body>
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
type="text/javascript"></script>
<script type="text/javascript">
function submit() {
$.getJSON({{ request.script_root|tojson|safe }} + '/topics',
{ key: $('#key').val() },
function(data) {
var ul = $('#result');
ul.empty();
$(data.topics).each(function(index, item) {
ul.append($('<li>',{text:item}));});});}
</script>
<p> Search Term: <input id="key" name="key"/>
<input id="submit" type="button" value="Go" onclick="submit();" /></p>
<hr /><ul id="result"></ul>
</body></html>'''
@app.route('/')
def index():
return render_template_string(index_html)
@app.route('/topics')
def topics():
key = request.args.get('key')
topics = wikipedia.search(key) or ['No topic found']
return jsonify(topics=topics)
app.run(debug=True)
对您的服务器发出请求,而无需加载单独的页面,您通常使用Ajax调用 – njzk2
的技术,你要寻找的被称为[AJAX ](HTTPS://en.wikipedia.org/wiki/Ajax_ \(编程\))。 – RoadieRich