如何通过网页运行 Python 脚本? [复制]
Posted
技术标签:
【中文标题】如何通过网页运行 Python 脚本? [复制]【英文标题】:How do I run a Python script through a webpage? [duplicate] 【发布时间】:2019-10-19 22:52:34 【问题描述】:我有一个名为 test.py
的 Python 脚本,其中包含许多函数和循环,可输出一些原始数据,我正在尝试从网页运行它。
作为第一步,我在下面使用烧瓶准备了一个非常简单的代码,以查看我的脚本是否有效。
我希望在网页上呈现输出(一些原始数据),但它似乎对我不起作用,也许我没有一个好的开始。
简而言之,我需要输入我的服务器地址并查看我的脚本的输出。
是的,如果一切顺利,我也会开发它以获取输入数据。
from flask import Flask, redirect, url_for, request
import test
app = Flask(__name__)
@app.route('/')
def dynamic_page():
return test()
if __name__ == '__main__':
app.run(debug=True)
【问题讨论】:
在顶部导入json并在dynamic_page函数中返回json.dumps(test()),看看是否有帮助 【参考方案1】:Berk,Flask 的路由需要特定类型的响应(字符串、元组、响应实例等)。您可以阅读它们here。我猜您的测试函数不会返回任何所需的类型。
你可以做的是对test
函数的结果进行json序列化并将其作为Flask响应返回,如果这不可能(因为test
返回的值类型),那么只需将其打印到安慰。这样,您仍然可以确定您的函数调用有效。看下面的代码:
from flask import Flask, redirect, url_for, request
import test
# Also import json
import json
app = Flask(__name__)
@app.route('/')
def dynamic_page():
resp = test()
try:
resp = json.dumps(resp)
except:
print(resp)
return "Function executed. Check your terminal"
else:
return resp
if __name__ == '__main__':
app.run(debug=True)
【讨论】:
它仍然无法运行脚本(测试)。 如果没有,那么当您访问/
端点时会看到什么?你有错误吗?如果是,错误是什么?【参考方案2】:
test
到底是做什么的?
当用户访问路由时,您似乎正在尝试调用您的模块,相反,您应该调用一个函数。
如果你想在用户访问你的 Flask 路由时执行特定的功能,你可以这样做:
import test
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return test.my_function_here()
if __name == '__main__':
app.run(debug=True)
【讨论】:
这假设 test 是一个模块而不是一个独立的脚本。从问题的描述来看,test 是一个控制台脚本,只是输出一些数据。 @Rashid'Lee'Ibrahim 你是对的,我的错! 是的,test 是一个包含多个功能的 scipt。【参考方案3】:据我了解,您想从浏览器中调用 Python。
如果是这种情况,您只需向您的路由发送 Ajax GET
请求,该功能就会运行。
$.ajax(
url: "/root/example/route/",
method: "GET",
success: () => console.log(`Python response: $response`)
);
然后添加如下路由函数:
@app.route("/root/example/route/", methods = ["GET"])
def example_route():
print("This was called from the browser!")
return "All finished here!"
当您在浏览器中运行 javascript 时,Ajax 会向 Flask 路由发送 GET
请求,该路由会输出:
This was called from the browser!
在您的终端中,它会发送:
All finished here!
JavaScript 将其记录到控制台的浏览器。
注意:如果不查看youmightnotneedjquery.com,我假设您正在使用 jQuery。
祝你好运。
【讨论】:
让我们continue this discussion in chat.以上是关于如何通过网页运行 Python 脚本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中运行另一个脚本而不等待它完成? [复制]