我在postgresql中有一个数据库,我必须将它连接到Web服务器。我熟悉python编程,但不熟悉web编程。我有一些关于DAL(数据库抽象层)的信息,可以在python中编写我的查询。我必须将我的查询概括为函数。使用DAL并随后使用web2py技术将其连接到Web服务器是一个好主意吗?
答案 0 :(得分:2)
web2py DAL支持Postgres,您可以在web2py中使用它,或者您只能使用dal.py并与您喜欢的项目/框架一起使用。
对于现有数据库,我建议您阅读http://web2py.com/book
的第6章我有多个与Postgres一起运行的应用程序,它非常好用!
答案 1 :(得分:2)
如果您需要数据库不可知,那么web2py DAL是一个很好的选择。这意味着DAL使用数据库后端的指定方言实时动态生成SQL,这样您就不必编写SQL代码或学习不同的SQL方言;因此,您的应用程序可以在不同类型的数据库中移植。由于SQL是由DAL动态生成的,因此它可以确保所有插入的数据都被正确转义,这可以防止注入漏洞并使SQL注入无法进行。
此外,虽然我没有在web2py书中找到任何关于如何从现有数据库自动生成模型的内容,但是有一种方法可以使用现有的脚本从现有的PostgreSQL数据库快速轻松地创建数据库模型。由Mariano Reingart创建的github,它基于由Alexandre Andrade创建的“从dbs生成模式”(mysql)的脚本。该脚本用于从PostgreSQL数据库创建web2py数据库模型。
由于我使用的是MSSQL数据库,我需要一个类似的脚本,但我找不到任何东西,所以我对脚本进行了少量编辑,特别是围绕SQL和数据类型,以便它更符合MSSQL,它就像一个魅力。我有一个大约150个表的数据库模型,在几秒钟内创建,它为我节省了很多时间。
https://github.com/phektus/cvstash/blob/master/scripts/extract_pgsql_models.py
我希望这能帮助那些正在寻找同样的人。