django - 将 PHP 论坛集成到 Django 站点的最佳方法是什么?

标签 django

假设您正在运行一个 Django 站点,并且有一个旧的 PHP 论坛来支持和集成到您的站点中,因为当前的 Django 论坛解决方案还不够成熟。

做这个的最好方式是什么?

目前我有一个简单的 View ,它呈现了一个非常简单的模板,它扩展了我网站的基本模板,内容区域只有一个 <IFRAME>它将论坛作为其src .一个小的 jQuery 函数用于最大化 <IFRAME>的高度(一旦完成加载)以包含 100% 的论坛内容。

但这一切听起来很尴尬。你会怎么做?

最佳答案

有几个选项。没有一个是理想的(但混合两个平台绝不是!)

  • 按照您的建议使用 iframe(因为地址栏中的地址始终是 django 页面的地址,如果有人处理论坛外的链接,它将是 PHP 论坛,而不是 django 持有者)
  • 使用 iframe 而不是使用相同的 src一直在解析 URL 并将相对位附加到 iframe 的 src 上。即如果 django 看到 /forum/this-url , 将 src 设置为 http://forum-address/this-url并确保所有链接都指向 parent .这样做的好处是始终在地址栏中显示正确的链接(而不是总是显示/forum/)。您需要破解您的论坛才能使其正常工作。
  • 代理内容并将其正确注入(inject)页面。您需要传递 cookie,它可能会变得非常困惑,但在大多数情况下,这是整合事物的好方法,因为您的链接将始终正确。您需要删除您的论坛主题以删除所有内容,包括 <body>标签。
  • 以与 Django 站点相同的方式为您的论坛设置主题。这将提供最佳性能,但如果您在 django 模板中使用动态内容,您可能会遇到问题。解决这个问题的一个方法是让 django 模板将内容缓存到 memcache 并使用 php-memcache 将它们拉出到您的论坛模板中。

  • 我过去做过3和4。我将 3 用于一个非常简单的表单(因此不必像您那样处理 cookie 和 session )。我使用 4 将 FluxBB 论坛集成到 Wordpress 安装中。两者都是 PHP,但在 Wordpress 中加载 FluxBB 会非常臃肿。我将动态模板的东西缓存到 memcache 中,然后在论坛模板中将它们拉出来。

    为此,我可能会建议使用#4。必须保持两个主题是一件很痛苦的事情,但它是迄今为止性能最快的解决方案。

    关于django - 将 PHP 论坛集成到 Django 站点的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/901857/

    相关文章:

    Django ModelForm 自定义日期字段

    python - Django 项目发送回类别对象而不是该类别的名称

    python - Django NoReverseMatch

    python - 在所有 View 函数 django 中传递表单的优化方式

    python - 如何为 Django 的每个 HiddenInput 字段设置值?

    django - 合并多个SearchQuerySet

    javascript - 无法使 Lightbox2 在 Django 中工作

    python - 类型对象 'Notification' 没有属性 'object'

    django - 为什么 Django 会在此表单验证中抛出 KeyError?

    javascript - 将 DropzoneJS 与 Django 一起使用时出现 MultiValueDictKeyError