admin管理员组

文章数量:1558046

我使用可以生成应用程序中存储的一些数据的PDF报告的web应用程序。然而,要获得该报告,需要点击几次,并与应用程序混为一谈。如何在网络服务器上运行Python脚本

我支持这个应用程序的一组用户(我们使用的应用程序,我们不创建应用程序),我希望他们能够生成和查看尽可能少的点击这个报告。幸运的是,这个Web应用程序通过RESTful API提供了大量数据。所以我做了一些脚本。

我有一个Python脚本,它使HTTP GET请求,处理JSON结果,并使用该结果数据来动态构建一个URL。这里是我的Python代码的简化版本:

#!/usr/bin/env python

import requests

app_id="12345"

secret="67890"

api_url='https://api.webapp.example/some_endpoint'

resp = requests.get(api_url, auth=(app_id,secret))

json_data = resp.json()

# Simplification of the data processing I'm doing

my_data = json_data['attr1']['attr2'] + my_data_processing

# Result of the script is a link to a dynamically generated PDF

pdf_url = 'https://pdf.webapp.example/items/' + my_data

以上是我的代码实际上有一个简化,但它表明了相关的问题。在我的实际脚本中,我继续通过动态构建的URL进行另一个GET。 Web应用程序根据URL的my_data部分生成PDF,然后将该PDF写入文件。今天工作得很好。

目前,这是一个python脚本,可以在本地机器上按需运行。不过,我想在网络上的某个位置托管此文件,以便当用户在其浏览器中点击URL时,它会运行并生成pdf_url,而不必在每个用户的本地计算机上安装此脚本,以便PDF可以在移动设备上生成并查看。

思想是用户可以打开http://example/report-shortcut,python脚本将运行服务器端,动态构建URL并将用户重定向到该URL,然后该URL将在浏览器中显示PDF(假设用户是使用显示诸如Chrome,Safari等PDF文件的浏览器)。或者,如果重定向有问题,转至http://example/report-shortcut只能显示一个HTML页面,其中包含指向由Python脚本生成的URL的链接。

我正在寻找一种解决方案,以便如何托管此Python脚本并在用户访问网页时使其运行。我研究过AWS Lambda和Django,但对于这样一个简单的脚本(大约20行代码,加上注释和空白)看起来似乎过分了。我也看过Python CGI脚本,看起来很有前景,但我没有经验设置类似的东西。

寻找有关如何在用户转到示例网址时最好地托管和运行此代码的建议。

PS:我想过只是重新在Javascript中实现,但我宁愿API密钥不公开访问。

+2

前端的JavaScript将是任务比较容易的方式,但如果你一定想这样做后端服务器[瓶(http://flask.pocoo上/)可能更容易设置。 –

本文标签: 器上如何在网络服务脚本Python