我有一个名为test.py
的Python脚本,它具有许多功能和循环,可输出一些原始数据,我正尝试从网页上运行它。
首先,我在下面使用flask准备了一个非常简单的代码,以查看我的脚本是否有效。
我希望在网页上呈现输出(一些原始数据),但似乎对我不起作用,也许我对此没有一个好的开始。
简而言之,我需要输入服务器地址并查看脚本的输出。
是的,如果一切顺利,我也会开发它以获取输入数据。
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)
答案 0 :(得分:1)
Berk,Flask的路由要求某些类型的响应(字符串,元组,Response实例等)。您可以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)
答案 1 :(得分:0)
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)
答案 2 :(得分:0)
据我了解,您想从浏览器中调用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。
祝你好运。