Python 编写一个无限期运行的Django后端程序——要记住什么?

Python 编写一个无限期运行的Django后端程序——要记住什么?,python,django,database,django-models,django-authentication,Python,Django,Database,Django Models,Django Authentication,我正在尝试编写一个Django应用程序,它可以查询远程数据库中的一些数据,对其中的一部分数据执行一些计算,并将结果存储(在使用Django模型的本地数据库中)。它还过滤另一部分并单独存储结果。然后,我的前端查询Django数据库中的这些已处理数据,并将它们显示给用户 我的问题是: 如何编写一个代理程序,在后端连续运行,从远程数据库下载数据,进行计算/筛选,并将结果存储在本地Django数据库中?特别是,当编写一个无限期运行的程序时,需要记住的最重要的事情是什么? 为此目的使用cron是一个好主意

我正在尝试编写一个Django应用程序,它可以查询远程数据库中的一些数据,对其中的一部分数据执行一些计算,并将结果存储(在使用Django模型的本地数据库中)。它还过滤另一部分并单独存储结果。然后,我的前端查询Django数据库中的这些已处理数据,并将它们显示给用户

我的问题是:

  • 如何编写一个代理程序,在后端连续运行,从远程数据库下载数据,进行计算/筛选,并将结果存储在本地Django数据库中?特别是,当编写一个无限期运行的程序时,需要记住的最重要的事情是什么? 为此目的使用cron是一个好主意吗

  • 从远程数据库检索到的数据属于多个用户,每个用户的数据也必须单独保存/存储在我的本地数据库中。我如何做到这一点?是否可能使用行级/类实例级权限?请记住,后端代理负责存储、更新和删除。前端仅读取数据(通过http请求)

  • 最后,我允许创建新用户。如果新用户具有远程数据库的有效凭据,则应允许该用户使用我的应用。在这种情况下,我的后端将从远程数据库下载此特定用户的数据,执行计算/筛选,并将结果显示给用户。如何为新用户处理对象/数据库表的动态创建?在检索用户数据时,如何区分用户数据

  • 非常感谢熟悉Django的经验丰富的程序员的回答。多谢各位

    1) 用于定时和后台任务的标准get-go解决方案是芹菜,它集成了Django。还有其他人,比如休伊

    2) 通常的解决方案是,每一行都包含该数据所属的user_id列。这使用Django ORM的ForeignKey字段映射到用户模型。您的用户是否需要直接查询数据库,或者他们是否有直接的数据库帐户?如果没有,那么这个解决方案就足够了。听起来好像前端有一个数据库连接,所有权限逻辑都由前端处理,而不是数据库本身

    3) 有关详细信息,请参见2

    1) 用于定时和后台任务的标准get-go解决方案是芹菜,它集成了Django。还有其他人,比如休伊

    2) 通常的解决方案是,每一行都包含该数据所属的user_id列。这使用Django ORM的ForeignKey字段映射到用户模型。您的用户是否需要直接查询数据库,或者他们是否有直接的数据库帐户?如果没有,那么这个解决方案就足够了。听起来好像前端有一个数据库连接,所有权限逻辑都由前端处理,而不是数据库本身


    3) 见2

    谢谢你,米科。用户发送http请求,视图处理请求,因此没有直接的数据库访问。为拥有它的每一行设置单独的用户id列(用户字段)就足够了。然后将其用作筛选条件
    Data.objects.filter(user=request.user)
    谢谢你,Mikko。用户发送http请求,视图处理请求,因此没有直接的数据库访问。为拥有它的每一行设置单独的用户id列(用户字段)就足够了。然后将其用作筛选条件
    Data.objects.filter(user=request.user)