有关ASTEP 2019渲染架构的实用程序包

astep-forms-utils的Python项目详细描述


模块帮助生成用于体系结构的字段集和字段 ASTEP-2019(奥尔堡大学)。这可以用于任何写在烧瓶里的服务,以确保你没有 创建太多重复代码。它的灵感来自于django。

支持的版本

python=3.5

示例

创建一个处理不同字段的FieldSet实例 两者都在/fields/端点中显示,并用/render/进行验证

在字段中使用basis的示例可以是:

fromastep_form_utilsimportFieldSet,StringField,FloatFieldfromflaskimportFlask,jsonifyapp=Flask(__name__,static_url_path="")@app.route("/fields")deffields():field_set=FieldSet(StringField("my_name",label="Input Your Name:"),FloatField("my_age",label="Input Your Age:"))returnjsonify(field_set.as_form_fields())

返回json如下:

[{"label":"Input Your Name:","name":"my_name","type":"input"},{"label":"Input Your Age:","name":"my_age","type":"input-number"}]

您也可以使用枚举:

fromastep_form_utilsimportFieldSet,EnumFieldfromenumimportEnumclassMyModel(Enum):PRETTY_MODEL=auto()UGLY_MODEL=auto()field_set=FieldSet(EnumField("my_string",MyModel,label="Pick a model"))

'

您也可以在/render/端点中使用字段集来验证数据:

fromastep_form_utilsimportFieldSet,StringField,FloatField,is_data_emptyfromflaskimportFlask,jsonify,requestapp=Flask(__name__,static_url_path="")@app.route("/render")defrender():field_set=FieldSet(StringField("my_name",label="Input Your Name:"),FloatField("my_age",label="Input Your Age:"))ifis_data_empty(request):returnjsonify({'chart_type':'text','content':'Supply data please!'})iffield_set.is_valid(request):my_name=field_set.cleaned_data['my_name']my_age=field_set.cleaned_data['my_age']returnjsonify({'chart_type':'text','content':f'Hello my name is {my_name} and i am {my_age} years old.'})

为了使它更干燥并重用fieldset定义,可以使用工厂 函数field_set_factory,以重用相同的定义,如下所示:

fromastep_form_utilsimportStringField,FloatField, \
    is_data_empty,field_set_factoryfromflaskimportFlask,jsonify,requestapp=Flask(__name__,static_url_path="")# returns a method that creates a FieldSet with the two fieldsFIELD_SET_FACTORY=field_set_factory(StringField("my_name",label="Input Your Name:"),FloatField("my_age",label="Input Your Age:"))@app.route("/render")defrender():# Creates a fieldset with the defined fieldsfield_set=FIELD_SET_FACTORY()ifis_data_empty(request):returnjsonify({'chart_type':'text','content':'Supply data please!'})iffield_set.is_valid(request):my_name=field_set.cleaned_data['my_name']my_age=field_set.cleaned_data['my_age']returnjsonify({'chart_type':'text','content':f'Hello my name is {my_name} and i am {my_age} years old.'})raiseNotImplementedError()@app.route("/fields")deffields():field_set=FIELD_SET_FACTORY()returnjsonify(field_set.as_form_fields())

完整的解决方案可以在 实现chart type test 微服务。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ws-consumer服务地址中的java动态属性   java如何比较整数列表,然后按升序排序?   javascript我正在使用java脚本调用一个函数,但它没有调用代码下面的方法,也没有调用secretitnames()函数   在文本窗格中多次使用Java insertIcon图标   JavaMSAL安卓。AuthenticationActivity完成,但用于身份验证请求的线程池线程仍处于等待状态   if语句中的java多范围比较   java toString()表示输出   java如何在jcstrest测试中生成指令重新排序   java我怎样才能运行它?   web应用程序中使用Hibernate和Spring的java问题   如何将字符串数据写入Java文本文件   如何在java命令提示符下运行已签名的jar文件?   java从我的菜单调用RCP应用程序   java如何等待Canvas/GraphicsContext完成任务,然后再继续执行代码块?