微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python django通过装饰器或其他功能验证用户输入?还有什么pythonic?

如何解决python django通过装饰器或其他功能验证用户输入?还有什么pythonic?

我正在处理Web应用程序。用户可以设置一些参数来运行某些算法。因此,当我在后端提取参数时,我想在启动算法之前对其进行验证,这可能会在长时间执行后崩溃。我应该在算法函数周围使用修饰符,还是应该将参数传递给def validate_parameters()之类的函数,如果参数不正确,则会引发错误

解决方法

Python常用的“请求宽恕而不是允许”的经验法则是试图保持代码干净和易于理解。检查代码流会告诉您预期的路径是什么,很明显异常条件是什么。在这种情况下,不检查输入有两个缺点,您可以将所有检查一起隐藏在函数中,以使代码干净。我会说这里的pythonic就是这样的代码

    if not valididate_parameters(params):
        raise ValidationException(get_validation_error_msg(params))

在这里,您的validate_parameters函数只是进行检查。 get_validation_error_msg函数可以很繁重地生成可以呈现给用户的内容。例如,它可以检查所有参数,其中validate函数会在出现任何错误时尽早解决。请注意,您必须将ValidationException定义为Exception的子类,并在更高层次上进行捕获。

除了通用编程的想法外,在Django中,如果您的参数来自用户填写的表单,则应验证表单代码中的每个字段,就像Willem Van Onsem在其评论中指出的那样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。