将现有 Drupal 站点移植到 Django 应用程序的最佳方法是什么?我有大约 500 页(主要是书籍模块)和大约 50 篇博客文章。我没有使用任何第三方模块。我想保留当前的 ​​URL(出于 SEO 目的)并将数据库迁移到 Django。我将创建一个简单的博客应用程序,因此迁移博客文章应该没问题。使用 Django 提供 500 多个页面的最佳方式是什么?我想使用管理员来编辑/添加新页面。

有帮助吗?

解决方案

所有Django开发都是类似的,你的开发将符合这种模式。

  1. 为您的图书和博客文章定义Django模型。

  2. 使用Django的内置测试功能对该模型进行单元测试。

  3. 编写一些小工具将旧数据加载到Django中。此时,您将意识到您的Django模型并不完美。好。修理它。修复测试。重做负载。

  4. 配置模型的默认管理界面。此时,您将花时间调整管理界面。你会发现你的数据模型是错误的。这是件好事。修复你的模型。修复你的测试。修复你的负荷。

  5. 现在您的数据正确无误,您可以从旧版网页创建模板。

  6. 创建URL映射和查看函数以从数据模型填充模板。

  7. 花点时间让数据模型正确。这真的很重要,因为如果您的数据模型是可靠的,那么其他一切都非常简单。

其他提示

有可能编写与遗留数据库一起使用的Django模型(我以前做过这个;参见 manage.py inspectdb 上的文档)。

但是,我会遵循上面的建议并使用Django约定设计一个干净的数据库,然后迁移数据。我通常编写通过Django写入新数据库的迁移脚本,并使用原始Python DB API读取旧数据库(虽然可以将Django绑定到同时有多个数据库

我还建议看看Django的可用博客应用程序。如果 Pinax 中包含的内容符合您的需求,请继续使用Pinax作为起点。

S·洛特回答 多年后仍然有效,我尝试使用完成工作的工具和格式来完成分析。

现在已经有很多 Drupal 导出工具了,但我也有同样的要求 视图数据源 选择 JSON 作为格式。该模块非常可靠,可用于 Drupal 的最新版本。这 JSON 格式在解析和编码方面都非常快,并且易于阅读并且对 Python 非常友好(导入 json).

使用视图数据源,您可以创建按节点 id (nid) 排序的节点视图,每页显示有限数量的元素,配置视图路径,向其添加过滤器标识符并向其传递 nid 以读取所有元素,直到获得空的 JSON 响应。

在 Django 中导入时,您还有一系列广泛的工具,从 loaddata 加载装置. 。查看数据源导出的 JSON,但它的格式不符合 Django 期望的装置:你可以写一个 自定义管理命令 进行导入,您可以完全控制导入流程。

您可以通过传递 nid=0 作为参数来启动命令,然后让过程读取、导入,然后从下一页获取数据,只需传递上一个 HTTP 请求中读取的最后一个 nid。您甚至可以限制对所查看路径的访问,但需要在导入端进行其他配置。

关于性能,仅举个例子,我在 8 核 / 8 GB Linux 虚拟机上通过 Django 1.8 自定义管理命令在不到 10 分钟内解析并导入了 15.000 多个节点,并且 PostgreSQL 作为 DBMS,将​​成功和错误信息记录到每个节点的自定义模型中。

这些是这两个平台之间导入/导出的基础知识,有关详细信息,我描述了所有 本指南中从 Drupal 导出然后导入到 Django 的主要步骤.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top