【发布时间】:2022-01-17 04:07:46
【问题描述】:
我有一个用 django 和 postgresql 构建的网站。 网站上的每个用户(django Auth 系统中的用户)都有许多帐户模型(和其他模型)。
基于 windows-python 的应用程序需要访问(读/写)数据库中的数据。 每个应用都与特定用户相关联。
我的问题:
- 应用程序能否仅访问特定用户数据?帐户模型有一个用户属性,因此它会根据它进行过滤,它如何限制外部应用访问?
- 从数据库读取/写入的正确方法是什么?我可以像网站一样使用 django 模型吗?
【问题讨论】:
-
Django 具有 DB 功能:因此您可以为表编写 Python 类并在应用程序中使用实例。 Django 处理剩下的事情。 Here 是一个深入浅出的关于如何使用 Django+PG 的教程。
-
这不是我的问题。我已经全部运行并设置好了。我想从 django+pg 服务器外部访问数据。来自在 Android/Windows 客户端上运行的应用程序。
-
第一个选项是在 Django 中创建一个 API(也有核心模块)。第二个选项,使用完整的 URL 连接到数据库,例如
postgresql://user:passwd@host/mydatabase. -
第二个选项授予管理员访问数据库的权限,对吧?
-
can an app access only specific user data?通常,如果应用程序直接连接到数据库,您不能让用户只访问他们的数据。 SQL 确实有权限,但这些权限非常广泛。例如,您将无法授予用户仅编辑部分表格的权限。通常,您会使用 Django 之类的应用程序服务器来实现对单个用户的访问控制,并且不允许用户直接连接到数据库。