Python Flask:循环访问请求并直接输出到网页

时间:2016-12-24 04:02:21

标签: python flask python-requests

我想在Flask中编写一个程序,将网站的状态代码异步打印到一个有时间延迟的网页,即

import flask
import time
import requests
app = flask.Flask(__name__)

@app.route('/yield')
     def index():
          def inner():
              for x in range(100):
                  time.sleep(1)
                  req = requests.get('https://www.youtube.com/watch?v=[somenumber]')
                  print(req.status_code)
                  return '<br/>\n' + str(req.status_code)

          return flask.Response(inner(), mimetype='text/html')



app.run()

网页上的输出只是enter image description here

当我预计它是99&#39; 404&#39;由于for循环的范围而产生的消息。

1 个答案:

答案 0 :(得分:0)

Flask中的return语句告诉HTTP处理程序将输出发送到客户端并关闭连接。你在循环的第一次迭代中执行此操作,因此循环永远不会再次运行。

改为这样:

def inner():
    val = ""
    for x in range(100):
        time.sleep(1)
        req = requests.get('https://www.youtube.com/watch?v=[somenumber]')
        print(req.status_code)
        val.append('<br/>\n' + str(req.status_code)) # add to a string
    return val  # and then return the value