如何使用pythonflas保存shell的输出

2024-04-27 05:03:38 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我对编程很陌生。 我试图从bashshell中保存一个变量

  >curl http://169.254.169.254/latest/meta-data/

该行将返回诸如local-ipv4之类的数据。我试着用phython和flask来保存这些变量。我写的

^{2}$

但这给了我一个运行时错误:在请求上下文之外工作。 有人能指导我去哪里寻找可能的解决办法吗?在


Tags: 数据httpflaskdatalocal编程错误curl
2条回答

因为您只需要发出httpget请求并打印响应,所以不需要Flask。您可以使用urllib标准库来发送GET请求(https://docs.python.org/3/library/urllib.request.html):

import urllib.request

def testRequest():
  url1 = "http://169.254.169.254/latest/meta-data/"
  response = urllib.request.urlopen(url1)
  nameText = response.read().decode('utf-8')
  return nameText

testOutput = testRequest()
print testOutput

对这里的评论:

  1. 首先,使用requests,这是一个非常推荐的HTTP请求库,看起来您会很好。有了它,你可以:

    import requests
    url = "http://169.254.169.254/latest/meta-data/"
    resp = requests.get(url)
    print resp.text
    
  2. 关于您得到的错误runtime error : working outside of the request context,是因为通过testOutput = testRequest()你调用了一个属于Flask应用程序app的方法。与此错误相关的另一件事是您从未运行过Flask应用程序。要做到这一点,请在代码末尾包含这一点。在

    ^{pr2}$

    但是,再说一遍,Flask是一个非常有用的web框架,它可以用来创建web站点、api、web应用程序等等。它非常有用,但我认为您可能不需要它来实现您要实现的目标。

关于requests和{}的更多信息:

相关问题 更多 >