如何通过网页运行Python脚本?

时间:2019-06-04 11:53:35

标签: python python-3.x flask python-webbrowser

我有一个名为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)

3 个答案:

答案 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。

祝你好运。