Python 请求库不适用于 Flask 应用程序自己的路由

罗宾

在我的烧瓶应用程序上,我有一条路线(http://localhost:5000/api/users/),它从数据库中以 JSON 格式返回用户列表,并且在通过 curl 或谷歌浏览器邮递员请求时它工作得很好。假设路线是声明为以下代码:

@app.route('/api/users/')
def users():
    return 'Some json results...'

但是,在我的应用程序中,有一点我需要使用相同的用户列表,因此我决定提交一个get请求,并从“ / api / users /”路由中提取用户。我已经安装了 python requests 库,这里是下面的路由定义,它应该返回相同的用户列表:

@app.route('/api/someroute/')
def someroute():
    r = requests.get('http://localhost:5000/api/users/')
    return r.json()

现在通过邮递员或 curl 向这条路线('/api/someroute/')提交一个获取请求,一直加载,直到我关闭应用程序。它不返回任何内容,没有错误,并且还会冻结所有其他路由。如果我尝试从用户路由 ('/api/users/') 请求数据,则请求仍在加载 'someroute' 时也会继续加载。但是当我尝试从某个外部 url 请求数据时,它工作正常。这是从外部资源请求数据的自定义代码:

@app.route('/api/someroute/')
def someroute():
    r = requests.get('https://jsonplaceholder.typicode.com/posts/1')
    return r.json()

向 someroute 提交 get 请求现在可以正常工作并按预期返回数据

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}

我尝试了许多外部网址,并且每个网址都没有任何问题地通过,它只是在向自己的路由/网址提交请求时停止工作。

这个场景只是为了理解,我需要实现一些更复杂的东西,这就是为什么我必须向应用程序自己的路由提交请求。不知道出了什么问题,坚持了这么久。很感谢任何形式的帮助。

更新:启用线程,它开始工作正常,要求关闭这个问题。
解决方法:在烧瓶路由功能中使用请求模块

格雷格·埃里梅耶夫

发生这种情况是因为您的 Flask 服务器只有一个线程。当您发出请求时,线程会处理您的请求,并且无法处理它在处理过程中所做的另一个请求。

尝试使用不同的端口运行另一个进程并更改您的网址,它会起作用。此外,您可以使用--with-threads选项运行您的服务器

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTTPS代理不适用于Python的请求模块

来自分类Dev

请求无法在同一Flask应用程序中调用多个路由

来自分类Dev

如何在较大的Python / Flask应用程序中组织数据库连接?

来自分类Dev

python请求不适用于Google App Engine

来自分类Dev

Flask Web应用程序(Python 2.7)

来自分类Dev

适用于python的Windows GUI应用程序?

来自分类Dev

CSS不适用于Flask

来自分类Dev

VSCode调试不适用于NodeJs应用程序

来自分类Dev

GoogleApiClient不适用于电视应用程序

来自分类Dev

无法在python Flask应用程序中向SQL数据库添加注释

来自分类Dev

python flask bucketlist应用程序

来自分类Dev

Axios修补程序请求不适用于Laravel

来自分类Dev

如何从单个应用程序路由返回多个响应:Flask(Python)

来自分类Dev

cpanel中的Python flask应用程序路由:只能访问根URL

来自分类Dev

指定URL(Python Flask)时应用程序路由不起作用

来自分类Dev

快速删除路由不适用于Angular应用程序

来自分类Dev

如何使用python请求将文件上传到Flask应用程序

来自分类Dev

字典中的循环不适用于Python-Flask-HTML

来自分类Dev

适用于AWS Elastic Beanstalk的Python Flask请求无问题

来自分类Dev

适用于AWS Elastic Beanstalk的Python Flask请求无问题

来自分类Dev

libgdx的http请求方法不适用于Web应用程序

来自分类Dev

Flask Web应用程序(Python 2.7)

来自分类Dev

向Flask Python应用程序发出请求后使用threading.Timer

来自分类Dev

Github提交不适用于桌面应用程序

来自分类Dev

HTTPS请求不适用于android应用程序

来自分类Dev

更改数据库后,Rails应用程序不适用于乘客

来自分类Dev

Python 请求不适用于 https 代理

来自分类Dev

cron 不适用于我的 python 程序

来自分类Dev

Zappa 不适用于 Flask 蓝图

Related 相关文章

  1. 1

    HTTPS代理不适用于Python的请求模块

  2. 2

    请求无法在同一Flask应用程序中调用多个路由

  3. 3

    如何在较大的Python / Flask应用程序中组织数据库连接?

  4. 4

    python请求不适用于Google App Engine

  5. 5

    Flask Web应用程序(Python 2.7)

  6. 6

    适用于python的Windows GUI应用程序?

  7. 7

    CSS不适用于Flask

  8. 8

    VSCode调试不适用于NodeJs应用程序

  9. 9

    GoogleApiClient不适用于电视应用程序

  10. 10

    无法在python Flask应用程序中向SQL数据库添加注释

  11. 11

    python flask bucketlist应用程序

  12. 12

    Axios修补程序请求不适用于Laravel

  13. 13

    如何从单个应用程序路由返回多个响应:Flask(Python)

  14. 14

    cpanel中的Python flask应用程序路由:只能访问根URL

  15. 15

    指定URL(Python Flask)时应用程序路由不起作用

  16. 16

    快速删除路由不适用于Angular应用程序

  17. 17

    如何使用python请求将文件上传到Flask应用程序

  18. 18

    字典中的循环不适用于Python-Flask-HTML

  19. 19

    适用于AWS Elastic Beanstalk的Python Flask请求无问题

  20. 20

    适用于AWS Elastic Beanstalk的Python Flask请求无问题

  21. 21

    libgdx的http请求方法不适用于Web应用程序

  22. 22

    Flask Web应用程序(Python 2.7)

  23. 23

    向Flask Python应用程序发出请求后使用threading.Timer

  24. 24

    Github提交不适用于桌面应用程序

  25. 25

    HTTPS请求不适用于android应用程序

  26. 26

    更改数据库后,Rails应用程序不适用于乘客

  27. 27

    Python 请求不适用于 https 代理

  28. 28

    cron 不适用于我的 python 程序

  29. 29

    Zappa 不适用于 Flask 蓝图

热门标签

归档