RuntimeError:尝试从另一个Python脚本向Flask应用发送POST请求时在请求上下文之外工作

照亮

我试图弄清楚如何从另一个python脚本发送POST请求到Flask应用程序。但我得到RuntimeError:在请求上下文之外工作

这是我的Flask应用(app.py):

import datetime
import numpy as np
import pandas as pd
from flask import Flask, jsonify, make_response, Response, request, json

def upload_data(file):
    df = pd.read_json(file)
    df['Date'] = pd.to_datetime(df['Date'], format="%Y-%d-%m %H:%M:%S")
    df['QI'] = np.nan
    return df

server = Flask(__name__)

@server.route('/results', methods=['POST', 'GET'])
def DL_results_get():
    with server.test_request_context('/results'):
        if request.method == 'POST':
            reqData = request.get_json(force=True)
            df_DL = upload_data(reqData)
            return df_DL.to_json()
        else:
            return print('GET is not supported')

if __name__ == '__main__':
    server.run(debug=True, port=85)

这是我的POST请求(request.py脚本

import datetime
import numpy as np
import pandas as pd
from flask import Flask, jsonify, make_response, Response, request, json

headers = {'content-type': 'application/json', 'Accept': 'application/json'}
dfDL = pd.read_csv('data.csv')
dfDLJson = dfDL.to_json()
myAuthResponse = request.post('http://0.0.0.0:85/results', headers=headers, data=dfDLJson)
dataReturned = json.loads(myAuthResponse.text)
print(dataReturned)

错误信息:

Traceback (most recent call last):
  File "endpoint.test.py", line 12, in <module>
    myAuthResponse = request.post('http://0.0.0.0:85/DL-CA-results', headers=headers, data=dfDLJson)
  File "C:\Users\iakubal\Anaconda3\envs\general_3_6\lib\site-packages\werkzeug\local.py", line 347, in __getattr__
    return getattr(self._get_current_object(), name)
  File "C:\Users\iakubal\Anaconda3\envs\general_3_6\lib\site-packages\werkzeug\local.py", line 306, in _get_current_object
    return self.__local()
  File "C:\Users\iakubal\Anaconda3\envs\general_3_6\lib\site-packages\flask\globals.py", line 38, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

我在这里找到了一个类似的问题,我尝试将其添加with server.test_request_context('/results')到Flask应用程序的代码中,但是我仍然遇到相同的错误。

阿卜杜勒-拉赫曼·扬汉格尔

不要用瓶的请求在您的python脚本,使用Python包称为见于请求这个答案您可以通过以下方式安装请求

pip install requests

并像这样使用

>>> import requests
>>> myAuthResponse = requests.post('http://127.0.0.1:5000/results', json=dfDLJson, headers=headers)
>>> myAuthResponse.status_code
200
>>> dataReturned = myAuthResponse.json()

不要在烧瓶外使用烧瓶

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Flask Babel RuntimeError:在请求上下文之外工作

Python + Flask 在请求上下文之外工作

RuntimeError:在请求上下文之外工作时在方法的第一行中使用请求时

Flask启动新线程-RuntimeError:在请求上下文之外工作

Flask,Python和Socket.io:多线程应用程序给了我“ RuntimeError:在请求上下文之外工作”

使用Flask将机器学习模型部署为REST API。错误:RuntimeError:在请求上下文之外工作

烧瓶到高速公路并扭曲:RuntimeError:在请求上下文之外工作

启动子线程时烧瓶抛出“在请求上下文之外工作”

Python flask服务器,如何向另一个请求的线程发送消息?

RuntimeError:在 Python 中使用 Celery 和 Flask 在应用程序上下文之外工作

使用Python Flask应用程序“ RuntimeError:在应用程序上下文之外工作”(使用调度程序发送gmail)

运行时错误:在请求上下文之外工作。(蟒蛇烧瓶)

Celery 后台任务的“在请求上下文之外工作”错误

Python 的默认 SSL 证书上下文在代理后面时无法在请求方法中工作,否则工作正常

如何从我自己的应用程序向另一个 API 发送发布请求

Flask-RuntimeError:在应用程序上下文之外工作

RuntimeError:在应用程序上下文之外工作

如何从一个Rails应用向另一个Rails应用发出POST请求?

在使用线程向另一个网站发出GET请求和POST请求时遇到麻烦

在另一个上下文中执行PowerShell脚本

如何将上下文从脚本传递到另一个类

为什么我的应用程序的一部分在一个上下文中工作而在另一个上下文中不工作?

尝试发送POST请求时,应用脚本发送405响应

Spring从另一个项目导入应用程序上下文

为什么DispatcherServlet创建另一个应用程序上下文?

在另一个模块中使用应用程序上下文

如何从子上下文检索对象到另一个上下文?

如何从另一个上下文获取 React 上下文?

如何使用IP地址从一个Node.js应用程序向另一个请求发送请求?