2024-05-05 21:54:10 发布
网友
我有一个简单的post请求端点。在
一旦用户创建了如下所示的post请求,我想执行一个python脚本(比如测试.py). 在
[ { "sign": "53535", }, { "sign": "42122", } ]
当post请求进来时,单独执行脚本的最佳方法是什么?然后,当新的post请求(如下面所示的12323)出现时,我想再次单独运行一个python脚本。在
您可以尝试通过应用Middleware来接受特定的请求
Middleware
例如,您可以使用Middleware和JSON Schema来拦截特定的请求并触发所需的脚本。在
JSON Schema
from jsonschema import validate class CustomMiddleware(object): JSON_SCHEMA={ "type": "array", "items": { "type" : "object", "properties" : { "sign" : { "type" : "number" } } } def process_request(self, request): if 'application/json' in request.META['CONTENT_TYPE'] and request.method == 'POST': data = request.body try: validate(data, self.JSON_SCHEMA) # Schema is valid invoke your hooks except jsonschema.exceptions.ValidationError as ve: # proceed request further
但如果您需要在请求之间保存状态,最好使用session来处理这种情况
session
另外,不要忘记在您的settings.py中添加这个中间件,如下所示
settings.py
默认情况下,中间件捕获所有请求,因此您需要在process_request函数中过滤请求。在
process_request
JSONSchema用于减少验证请求的if-else语句的数量,您可以根据自己的需要定义不同的规则,只需声明性的,而不是命令式的。这确实使代码更具可读性和灵活性。您不应该使用JSONSchema这只是验证请求的一种可能方法。在
JSONSchema
if-else
可能是老套的解决方案:
定义一些自定义的Middleware,它使用stdlib中的子进程触发脚本。
使用decorator_from_middleware创建一个装饰器,以允许分配给各个端点
将decorator分配给接收更新的API端点。
每次命中端点时,中间件都会运行,并触发调用.py文件的子进程。在
您可以尝试通过应用
Middleware
来接受特定的请求例如,您可以使用
Middleware
和JSON Schema
来拦截特定的请求并触发所需的脚本。在但如果您需要在请求之间保存状态,最好使用
session
来处理这种情况另外,不要忘记在您的
^{pr2}$settings.py
中添加这个中间件,如下所示默认情况下,中间件捕获所有请求,因此您需要在
process_request
函数中过滤请求。在JSONSchema
用于减少验证请求的if-else
语句的数量,您可以根据自己的需要定义不同的规则,只需声明性的,而不是命令式的。这确实使代码更具可读性和灵活性。您不应该使用JSONSchema
这只是验证请求的一种可能方法。在可能是老套的解决方案:
定义一些自定义的Middleware,它使用stdlib中的子进程触发脚本。
使用decorator_from_middleware创建一个装饰器,以允许分配给各个端点
将decorator分配给接收更新的API端点。
每次命中端点时,中间件都会运行,并触发调用.py文件的子进程。在
相关问题 更多 >
编程相关推荐