gpt4 book ai didi

eve - 在没有 HTTP 的情况下使用 Eve 的数据库层

转载 作者:行者123 更新时间:2023-12-04 14:44:34 25 4
gpt4 key购买 nike

在我的应用程序中,MongoDB 集合需要由服务器端脚本作业更新(即:每 30 分钟从其他 API 抓取/拉取的 cron 作业)。我真正想做的是对 MongoDB 集合进行更新,但让数据根据架构进行验证并包含元数据(更新、创建等)。

想到解决这个问题的两种方法是:

  • 有一个假客户端来做 HTTP POST/PUT/PATCHES。然而,这意味着这个假客户端将不得不处理诸如身份验证/授权/上次修改以来的事情。
  • 使用 PyMongo 直接与 DB 交互。但是,这意味着我不会进行数据验证或存储元数据。

  • Eve 是否有数据库 Hook ,以便我可以在没有 HTTP 的情况下进行 Eve 丰富的数据库更新?

    最佳答案

    我能够在一个单独的脚本中运行它,该脚本可以由 jenkins 定期运行。我正在导入的 run.py 中的应用程序是我在 eve quickstart 结束时拥有的应用程序.

    from run import app
    from eve.methods.post import post_internal

    payload = {
    "firstname": "Ray",
    "lastname": "LaMontagne",
    "role": ["contributor"]
    }

    with app.test_request_context():
    x = post_internal('people', payload)
    print(x)

    post_internal 运行 eve.utils.parse_request,它依赖于flask.request,所以 with app.test_request_context()是必须的。 app.app_context()对于这种方法是不够的。

    阅读 appcontext 的文档和 reqcontext如果你是 flask 的新手(像我一样)。

    关于eve - 在没有 HTTP 的情况下使用 Eve 的数据库层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319716/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com