易于前端数据转换和验证。
bearform的Python项目详细描述
bearform
==
前端的数据转换和验证非常简单。bearform预计主要作为api端点的一部分使用。处理反序列化的json,
yaml或您喜欢的任何风格都是它擅长的。
[![生成状态](https://travis ci.org/wifast/bearform.svg)(https://travis ci.org/wifast/bearform)
示例
----
bearform的工作方式类似于许多表单验证器,您可以通过声明表单类来定义数据架构。例如:
from bearform import form,field
class bearform(form):
name=field(str)
type=field(str)
height=field(float)
您可以这样使用:
from bearform import formerror
@app.route(“/bear”)
def bear():
如果请求是json:
请尝试:
data=request.get戡json()
bear=bearform.decode(data)
bear.validate()
msg=“这是{}bear“.format(bear.type)
返回jsonify({'status':'success','msg':'msg'})
除了formerror作为e:
返回jsonify({'status':'fail','error':str(e)}),400
否则:
返回jsonify({'status':'fail','error':'invalid request'}),400
我也是。让我们修改我们的视图,在没有发布json时返回一个名为fluffy的小灰熊:
@app.route(“/bear”)
def bear():
如果是请求,则返回json:
尝试:
data=request.get\json()
bear=bearform.decode(data)
bear.validate()
msg=“这是一个{}bear”。format(bear.type)
返回jsonify({'status':'success','msg':'msg'})
除了formerror为e:
返回jsonify({'status':'fail','error':str(e)}),400
否则:
bear=bearform(name='fluffy',type='grizzly',height=6.3)
returnjsonify(bear.encode())
bear form提供了三种从填充的表单对象中获取数据的方法:
属性访问、to-dict方法和to-object方法。您已经在上面的示例中看到了
属性访问。to-dict方法做了一件显而易见的事情:它将表单作为字典返回。ToOObjr方法更具Br/>有趣,因为它可以用存储在
窗体对象中的解码数据填充现有对象。假设我们有一个bear文档(适当地用bearfield构建):
字段
类bear(文档):
类meta:
连接='bears'
名称=字段(str)
类型=字段(str)
高度=字段(float)
让我们解码一些数据并将其保存到数据库:
data={'name':'fluffy','type':'grizzly',height:'6.3'}
bear_form=bearform.decode(data)
bear=bear()
bear_form.to_obj(bear)
bear.save()
由于decode返回一个form对象,而to_obj返回我们传递给它的对象,我们可以将示例缩短为:
data={name':'fluffy','type':'grizzly',高度:'6.3'}
bearform.decode(data).to_obj(bear()).save()
希望将来能实现更好的bearfield集成。
在字段上包含验证器很简单:
from bearform import validationerror
def不是空的(cls,name,value):
如果不是值:
raise validationerror({}不能为空)。format(name))
def是正的(cls,name,value):
if value<;=0:
raisevalidationerror(“{}必须是正值”。format(name))
m(form):
name=field(str,validators=[is_not_empty])
type=field(str)
height=field(float,validators=[is_positive])
在解码过程中,validationerror将被提升为空,或者
bear没有正高度。
license
----
版权所有(c)2014 Wifast,inc.本项目及其所有内容均在包含的[license][1]文件中的
bsd派生许可下获得许可。
[1]:https://github.com/wifast/bearform/blob/master/license“许可”
==
前端的数据转换和验证非常简单。bearform预计主要作为api端点的一部分使用。处理反序列化的json,
yaml或您喜欢的任何风格都是它擅长的。
[![生成状态](https://travis ci.org/wifast/bearform.svg)(https://travis ci.org/wifast/bearform)
示例
----
bearform的工作方式类似于许多表单验证器,您可以通过声明表单类来定义数据架构。例如:
from bearform import form,field
class bearform(form):
name=field(str)
type=field(str)
height=field(float)
您可以这样使用:
from bearform import formerror
@app.route(“/bear”)
def bear():
如果请求是json:
请尝试:
data=request.get戡json()
bear=bearform.decode(data)
bear.validate()
msg=“这是{}bear“.format(bear.type)
返回jsonify({'status':'success','msg':'msg'})
除了formerror作为e:
返回jsonify({'status':'fail','error':str(e)}),400
否则:
返回jsonify({'status':'fail','error':'invalid request'}),400
我也是。让我们修改我们的视图,在没有发布json时返回一个名为fluffy的小灰熊:
@app.route(“/bear”)
def bear():
如果是请求,则返回json:
尝试:
data=request.get\json()
bear=bearform.decode(data)
bear.validate()
msg=“这是一个{}bear”。format(bear.type)
返回jsonify({'status':'success','msg':'msg'})
除了formerror为e:
返回jsonify({'status':'fail','error':str(e)}),400
否则:
bear=bearform(name='fluffy',type='grizzly',height=6.3)
returnjsonify(bear.encode())
bear form提供了三种从填充的表单对象中获取数据的方法:
属性访问、to-dict方法和to-object方法。您已经在上面的示例中看到了
属性访问。to-dict方法做了一件显而易见的事情:它将表单作为字典返回。ToOObjr方法更具Br/>有趣,因为它可以用存储在
窗体对象中的解码数据填充现有对象。假设我们有一个bear文档(适当地用bearfield构建):
字段
类bear(文档):
类meta:
连接='bears'
名称=字段(str)
类型=字段(str)
高度=字段(float)
让我们解码一些数据并将其保存到数据库:
data={'name':'fluffy','type':'grizzly',height:'6.3'}
bear_form=bearform.decode(data)
bear=bear()
bear_form.to_obj(bear)
bear.save()
由于decode返回一个form对象,而to_obj返回我们传递给它的对象,我们可以将示例缩短为:
data={name':'fluffy','type':'grizzly',高度:'6.3'}
bearform.decode(data).to_obj(bear()).save()
希望将来能实现更好的bearfield集成。
在字段上包含验证器很简单:
from bearform import validationerror
def不是空的(cls,name,value):
如果不是值:
raise validationerror({}不能为空)。format(name))
def是正的(cls,name,value):
if value<;=0:
raisevalidationerror(“{}必须是正值”。format(name))
m(form):
name=field(str,validators=[is_not_empty])
type=field(str)
height=field(float,validators=[is_positive])
在解码过程中,validationerror将被提升为空,或者
bear没有正高度。
license
----
版权所有(c)2014 Wifast,inc.本项目及其所有内容均在包含的[license][1]文件中的
bsd派生许可下获得许可。
[1]:https://github.com/wifast/bearform/blob/master/license“许可”