我有一个前夕的资源,例如ABC,我想操纵另一个资源,例如当我向ABC发布一个新项目时某些条件满足的BCD,我知道我可以将事件挂钩到post / pre_POST_ABC但是有没有“内部”方式在BCD上发布而不通过HTTP再次通过?
解决方法:
在你的回调函数中你可以:
A)使用数据驱动程序将数据直接存储到数据库
像这样的东西:
def update_ABC(request, payload):
accounts = app.data.driver.db['abc_collection']
account = accounts.insert(docs)
app = Eve()
app.on_post_POST_ABC += update_ABC
app.run()
会做的伎俩.您将以这种方式绕过框架,并直接存储在数据库中.
B)使用app.test_client.post()直接通过应用程序进行POST.
app.test_client().post('/bcd', json.dumps({"field":"value"}, content_type='application_json'))
这可能是一个更好的选择,因为请求通过框架(像data_created这样的元字段是为你处理的.)
更新:使用v0.5,您现在可以使用post_internal来获得相同的结果.其他CRUD方法也有相同的内部方法.
标签:python,eve 来源: https://codeday.me/bug/20190728/1563386.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。