我计划开发类似iSQL * Plus-oracle的Web UI,但对于大多数常见数据库。只需从用户那里获取输入查询并返回保存选项等结果。
因此,对于连接到外部数据库,什么是可取的方式,
1.使用django模型和raw sql或,
2. django外面的模块 - sqlalchemy + mysqldb,psycopg ..?
通过django文档我的理解是数据库连接必须在settings.py中,我无法从用户输入添加。我的理解是否属实?
我是django的新手而不是python。
答案 0 :(得分:1)
ORM(类似于Django的模型或sqlalchemy)是一个非常有用的抽象,可帮助将数据库中的表格数据映射到用于在代码中建模的对象。它不会帮助您连接到用户提供的数据库,因为您不知道您要连接的数据库架构,以及您将从查询中收到什么。
使用django,settings.py中定义的数据库用于存储与您的应用程序相关的信息,例如用户凭据,迁移以及您在models.py文件中定义的任何其他内容。因此,绝对不要尝试动态更改它,因为它用于存储所有用户的应用程序状态。
如果需要连接到外部数据库并运行用户提供的查询,则可以使用相应的数据库驱动程序在view内执行此操作。所以psycopg2
对于postgres会很好。