如何将Python脚本合并到我的网站中?我需要一个框架吗?

时间:2016-07-19 21:07:02

标签: javascript python

我想知道我是否有机会将Python脚本合并到我当前的网站中。

我有一个个人网站&我自己的服务器,我已经工作了一段时间。到目前为止,它只是html / css / javascript。我过去制作了一个Python脚本,它使用另一个网站的API来检索我想在我的网站上显示的内容。我只是从终端使用Python来获取输入并吐出结果。有没有办法让我从javascript通过Ajax运行Python脚本来获取一些内容?

我真的不想使用像Django或Flask这样的框架,因为我觉得这些框架主要用于整个项目。我只想在我的网站的一个页面上使用一个Python脚本。这甚至是我应该做的事情吗?任何建议都会很棒。

3 个答案:

答案 0 :(得分:4)

如果你只使用javascript并且不觉得框架是解决方案,你最好使用javascript重写你的python脚本。这两种语言有很多共同之处,大部分内容都是可转移的。从javascript调用python很可能不会那么好用。再说一遍,除非你分享你的python脚本(在SO中鼓励,因为纯文本问题不适合这里),所有答案都是基于意见的。

答案 1 :(得分:2)

我完全同意你关于Django的意见,但我认为你可以给Flask一个机会,它很轻,我可以用于许多人。无论如何,如果你想调用python脚本,你需要一种方法来调用它。我认为您需要脚本的“监听器”,例如服务或Web服务(因此我认为Flask可以是一个非常简单的解决方案)。 注意调用脚本时,可以从前端访问Web服务,但这不能通过“标准”脚本完成。 我的建议是看看你认为Flask更轻松。

答案 2 :(得分:2)

给Flask一个机会! 它专为您刚才描述的微服务而设计。

以下是您可以使用少于30行代码执行的操作:

app.py(烧瓶文件)

from flask import Flask, request
from flask import jsonify, render_template
app = Flask(__name__, template_folder='.', static_folder='.', static_url_path='')


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


@app.route('/convert', methods=['POST'])
def convert():
    return jsonify(items=[
        ("whatever python function output that you have")
    ])

if __name__ == '__main__':
    app.run(debug=True)

index.html文件

        $.ajax({
            url: '/convert',
            type: 'POST',
            data: formData,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success: function (data) {
                var el = $('#req_result');

                for (let item of data.items) {
                   ### show your result here ###
                  }
                }

                $('#req_hide').hide();
                el.show();
            }
        });
      });