有关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第三方库


热门话题
java Spring启动启用HTTPS   actionscript 3 java中的这个[“var”+“name”]   java只匹配给定集合中一个字符的一个匹配项   java Hibernate:防止角色表中出现多个相同的条目   javajersey+Spring注入servlet请求   java HtmlEditor javafx失去焦点   java Apache Wicket AjaxRequestTarget ListView组件未刷新或更新   mysql java。无法将lang.String转换为java。sql。时间戳   java将巨大的整数文件(在一行中)拆分为具有内存限制的已排序块   安卓如何完全关闭proguard?   安装Eclipse和Android SDK后的java“无AVD可用”消息   java动态显示图像视图   java在Spring中还有哪些WebsocketClient实现?   java Glassfish需要很长时间才能重新启动   使用Java简单串行连接器将pc与arduino连接   java如何在camel文件组件配置中结合readLockCheckInterval和maxMessagesPerPoll?   单击Android时的java预览图像   java如何将字节数组转换为ByteArrayOutputStream