当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《用于紧密DB/GUI耦合的pythonWeb应用程序框架?》经验,为你挑选了1个好方法。

我坚信后端和前端之间紧密耦合的异端思想:我希望在生成用户界面时自动使用有关后端的现有隐含知识.例如,如果VARCHAR列的最大值为20个字符,则GUI应自动约束用户在相关表单字段中键入超过20个字符.

我对想要定义我的数据库表的ORM有强烈的反感,或者基于某些hack,因为ORM,每个表都需要有额外的数字ID列.

我已经看了一下Python数据库框架,我想我可以断定SQLAlchemy最适合我的心态.

现在,我需要找到一个自然适合SQLAlchemy(或同等版本)的Web应用程序框架,甚至可能还有我对耦合的兴趣.使用"Web应用程序框架",我的意思是产品/项目,如Pyhons,Django,TurboGears,web2py等.

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

如果被告知,则自动为进入给定列的数据选择合适的表单窗口小部件 ; 例如,如果列具有10个不同值的列的外键,则窗口小部件应显示10个可能的值作为下拉列表

自动生成javascript表单验证代码,如果字符串输入到即将在INTEGER列中结束的字段等,则会为最终用户提供快速错误反馈

自动生成数据的日历小部件,该小部件将在DATE列中结束

提示NOT NULL约束作为javascript,它抱怨相关输入字段中的空或仅空白数据

生成匹配相关(简单)CHECK约束的 javascript验证代码

通过使用预准备语句和/或外部派生数据的验证,可以轻松避免SQL注入

通过在适当时自动转义传出字符串,可以轻松避免跨站点脚本

如果违反了约束,则使用约束名称生成一些用户友好的错误消息

所有这些都应该动态发生,因此表调整会自动反映在前端 - 可能是使用缓存机制,因此所有模型内省都不会扼杀性能.换句话说,我不想在我的数据库中仔细定义XML文件(或类似文件)中重复我的模型定义.

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



1> massimo..:

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代表国际化.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有