[初学]判断请求参数是否正确用了一大堆 if,有什么简单的方法

2015-04-15 16:23:00 +08:00
 Him
RT.

刚学2天……

每一个请求中都要用一大堆if 去判断传进来的参数是否合理,有没有什么简单的方法去处理?
4864 次点击
所在节点    Python
34 条回复
xavierskip
2015-04-15 19:20:43 +08:00
什么样的请求参数?
可以用 **kwds 参数传递来接受参数
python判断流程可以用 try...except...
laike9m
2015-04-15 19:47:06 +08:00
贴代码吧,说不定真正的问题并不出在if else上面
OpooPages
2015-04-15 22:08:25 +08:00
适配器模式。
messense
2015-04-15 22:12:32 +08:00
可以试试用 JSON Schema 描述校验,用 https://github.com/sunlightlabs/validictory 这个库校验。
saber000
2015-04-15 22:42:07 +08:00
@messense JSON Schema更多的文档可以看这里:http://spacetelescope.github.io/understanding-json-schema/

这种方法很推荐,现在基本上已经成为我的标准方法.具体有多爱呢,我基于JSON Schema写了一个序列化任意Python对象的库,不要脸发出来求指教.
virusdefender
2015-04-16 00:03:59 +08:00
参考django的form或者django rest framework的serializer 就是写一个类,里面写明字段和验证方法,然后进行验证
kzzhr
2015-04-16 01:44:34 +08:00
可以在某些地方放一些规则,比如正则。然后用循环的方式依次判断。
这样可以吧。。随口说的莫喷。。。
m_z
2015-04-16 09:24:14 +08:00
前端验证呢?不通过不提交...
Him
2015-04-16 09:34:25 +08:00
我自己写的: https://github.com/shaotianchi/easycheckmodel4python
用的是上面说的装饰器的方法。
多谢各位。
Catstyle
2015-04-16 09:40:00 +08:00
@gkiwi
if params is None and params == [] and len(kargs) == 0:
raise Exception("You should give me some params;")
这个判断确定能跑过?
前两个有什么情况能为True?
gkiwi
2015-04-16 10:19:34 +08:00
@Catstyle 额,确实触发不了 = =
已经修改~:)
MarioLuisGarcia
2015-04-16 11:31:41 +08:00
定义里是kkargs, 判断里是kargs了啊
staticor
2015-04-16 12:31:06 +08:00
http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/

楼主如果想看看装饰器作 类型限制的话可以看看这个. 当时我连decorator是啥都不知道呢, 看完这个就多少明白了.
ligyxy
2015-07-15 14:15:09 +08:00
property装饰器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/183911

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX