用于紧密DB / GUI耦合的python Web应用程序框架?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

用于紧密DB / GUI耦合的python Web应用程序框架?

祖安文状元 2020-02-24 09:56:17 305

我坚信后端与前端之间紧密耦合的异端思想:我希望在生成用户界面时自动利用有关后端的现有隐式知识。例如,如果VARCHAR列的最大值为20个字符,则GUI应该自动限制用户在相关的表单字段中键入20个以上的字符。

而且我对要定义数据库表的ORM表示强烈反对,或者基于某种骇客行为,因为ORM,每个表都需要有额外的数字ID列。

我对Python数据库框架进行了一些研究,我认为可以得出结论,SQLAlchemy最适合我的想法。

现在,我需要找到一个Web应用程序框架,该框架自然适合SQLAlchemy(或等效版本),甚至适合我的耦合需求。“ Web应用程序框架”是指产品/项目,例如Pyhons,Django,TurboGears,web2py等。

例如,理想情况下,它应该能够:

如果被告知要为输入给定列的数据自动选择合适的表单小部件;例如,如果该列具有指向具有10个不同值的列的外键,则小部件应将10个可能的值显示为下拉列表 自动生成javascript表单验证代码,如果将字符串输入到将要在INTEGER列中结束的字段中,则该代码将为最终用户提供快速错误反馈 自动生成日历小部件以获取将在DATE列中显示的数据 提示NOT NULL约束为javascript,它抱怨相关输入字段中的数据为空或仅包含空格 生成与相关(简单)CHECK约束匹配的javascript验证代码 通过使用准备好的语句和/或验证外部派生的数据,可以轻松避免SQL注入 通过在适当的时候自动转义传出的字符串,可以轻松地避免跨站点脚本编写 利用约束名称来生成一些用户友好的错误消息,以防违反约束 所有这一切都应该动态发生,因此表调整会自动反映在前端(可能使用缓存机制),以便所有模型自省不会破坏性能。换句话说,当我已经在数据库中仔细定义了模型定义时,我不想在XML文件中重复模型定义。

是否存在适用于Python(或任何语言)的框架?如果不是这样:如果我自己添加上述功能的一部分,那么几个Python Web应用程序框架中哪一个最不适合?

Python
分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-04-15 23:35:12

    web2py完成了你提出的大部分内容: 基于字段类型及其验证器,它将使用适当的小部件呈现字段。你可以覆盖

    db.table.field.widget=...

    并使用第三方小部件。 web2py有js阻止用户在整数字段中输入非整数或在双字段中输入非double。时间,日期和日期时间字段有自己的选择器。这些js验证与(而非代替)服务器端验证一起工作。 有

    IS_EMPTY_OR(...)

    验证器。 DAL可以防止SQL注入,因为当进入数据库时​​,转发会被转义。 web2py会阻止XSS,因为在{{= variable}}中,'variable'会被转义,除非另有说明{{= XML(variable)}}或{{= XML(variable,sanitize = True)}} 例如,错误消息是验证器的参数

    db.table.field.requires=IS_NOT_EMPTY(error_message=T('hey! write something in here'))

    T代表国际化。

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程