gpt4 book ai didi

python - Django 论坛应用程序项目结构

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:40 28 4
gpt4 key购买 nike

编辑:我是这个网站的新手,但如果您要投反对票,您能解释一下原因吗?我搜索过 Google、此网站和其他网站,但没有找到任何有意义的内容,我认为这是一个提出问题和获取帮助的网站。

我有一个自定义 PHP 论坛,我正在尝试将其转换为 Python/Django 作为学习体验,但我遇到了一些问题。我一直在阅读有关 Django 的内容,并且很高兴我们的应用程序被分成多个应用程序。我已阅读了 6 部分教程和文档的许多其他部分,但仍有一些问题。

假设我有大约 30 张 table 。

表格例如:基本论坛的 posts_index、posts、users、user_groups、user_activity、user_sessions、forum、 payment_gateways、 payment_logs 等

我在构建模型时遇到问题。对于 PHP,我需要的只是 index.php、/admin/index.php、view_forum.php、view_thread.php 和其他一些文件,所有内容都可以直接从数据库中提取,我没有任何问题,但现在我必须处理 apps/模块。

我想我需要以类似于这样的方式构建我的应用程序:

/admin/ app
/forums/ app
/view_forum/ app
/view_thread/ app
/forums/view_forum/ app (instead of just /view_forum/, could be a sub app)
/forums/view_thread/ app (instead of /view_thread/, could be a sub app)

我的问题也是唯一的问题是处理全局状态。例如,用户/组/ session /日志记录/权限信息需要通过导入其他应用程序模型文件在多个应用程序之间共享。为此,我需要引用他们的型号信息,处理此问题的正确方法是什么?

其中任何一个都可以接受吗?

  1. 创建大量不同的应用程序,例如/users/,它可以对我的 users_groups、users、user_sessions 进行建模,另一个用于/posts/的应用程序,其中包括 posts_index、论坛等的模型,但这些模型已存在,但实际上并未公开使用,它们只会在其他应用程序中使用。它们将被导入到/view_forum/应用程序等区域,因为在查看论坛时,我可能需要确定用户是否已登录、是否是特定组的成员等,因此需要访问许多隐藏的应用程序,因此将从隐藏的应用程序导入。

  2. 如果我只有一个应用程序,而不是一个应用程序,它只是我的整个项目,该怎么办?对我来说,这听起来是最好的解决方案,但如果我们无法将整个应用程序总结为一个句子,则似乎需要将其分解。如果我使用一个应用程序作为我的整个项目,我的模型文件将有 30 多个不同的模型,这是可以接受的吗?我想不会,但我想我会问。

以上任何一个有意义吗?如果不是,你会做什么修复它?我承认我迷路了,所以任何反馈都意义重大。

我是 Python/Django 新手,正在尝试解决问题。我希望我清楚我要做什么。我非常欢迎任何建议。我一直在尝试尝试一些东西,但我认为最好向更有经验的开发人员寻求建议。我不是专业程序员,仍在学习中,所以请保持友善:)。

最佳答案

我已经投票了……当我第一次转向 Django(也来自 PHP)时,我也遇到了类似的问题

尽量不要根据数据库表(或 URL 路径)来考虑应用程序,您希望为独立的功能创建应用程序。

我想说,您的大部分代码将位于一个 forum 应用程序中,其中包含 ForumPost 模型以及您的所有论坛 -相关网址,例如 /view_forum//view_thread/。请注意,Django 中并不存在真正的子应用程序...这些是不同的 View ,它们都属于单个应用程序中一组相关的功能。

“用户”的东西...您通常想要连接到 Django 身份验证系统( https://docs.djangoproject.com/en/dev/topics/auth/default/#user-objects ),但如果您试图保留遗留数据库结构,这可能会更困难...您最终可能需要您自己的用户应用程序。

支付网关的东西听起来又像是另一个应用程序。

对于管理员来说,您可以(几乎)免费使用 Django:
https://docs.djangoproject.com/en/1.5/ref/contrib/admin/
每个应用程序中都需要一个 admin.py,您可以在其中注册要向管理站点公开的模型。

您可能会发现最好遵循教程并构建一个简单的博客(或尝试从头开始构建一个非常简单的最小论坛),以便在处理重写之前对 Django 有所了解。因为尝试使用遗留数据库表精确地重新创建旧功能会有点困难,并且可能会导致您进入不“好的 Django”模式。

您可能还会发现查看现有 Django 论坛应用程序的源代码很有用,例如:
https://bitbucket.org/slav0nic/djangobb/src/
他们只有一个 djangobb_forum 应用程序可以完成所有操作。我认为这是完全合理的,因为论坛是一个复杂的功能。

请注意他们的 Profile 模型如何通过 OneToOneField 有效地扩展内置 Django auth.User 模型。这样可以更轻松地与内置登录和身份验证系统集成。

关于python - Django 论坛应用程序项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17118520/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com