有没有办法从网站运行python脚本?

时间:2016-09-12 02:16:20

标签: python flask

在Flask上,有没有办法运行python脚本而无需转到另一个页面?即没有重定向?

我想要做的是,为了能够按下页面上的按钮,它会触发一个Python函数,该函数将返回一些数据并在同一页面上显示数据。 Flask会这样吗?

2 个答案:

答案 0 :(得分:3)

解决方案是AJAX。

如链接中所述 http://api.jquery.com/jquery.ajax/

$.ajax({
  url: "url defined in Flask",
  method: "GET"
}).done(function() {
  // Change your DOM
});

APi在Flask中定义:

创建RESTFUL API。

http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask

定义路线中的网址。写下要调用的函数。返回 JSON 。在done函数中,您可以更改DOM元素。

答案 1 :(得分:0)

以下是此类计划的一个示例:

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)