我想知道我是否有机会将Python脚本合并到我当前的网站中。
我有一个个人网站&我自己的服务器,我已经工作了一段时间。到目前为止,它只是html / css / javascript。我过去制作了一个Python脚本,它使用另一个网站的API来检索我想在我的网站上显示的内容。我只是从终端使用Python来获取输入并吐出结果。有没有办法让我从javascript通过Ajax运行Python脚本来获取一些内容?
我真的不想使用像Django或Flask这样的框架,因为我觉得这些框架主要用于整个项目。我只想在我的网站的一个页面上使用一个Python脚本。这甚至是我应该做的事情吗?任何建议都会很棒。
答案 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();
}
});
});