请提供从现有的相当大的数据库建立 Wagtail 站点的指导。
该网站的核心是非常传统的,由两种基本页面类型组成:一种列出数据库中多个项目的“索引”页面类型,以及显示单个项目信息的“详细信息”页面类型。
假设我正在使用生物数据库。在这种情况下,主数据库表中的每条记录都对应一个特定的物种。
在计划中的 Wagtail 站点中,给定的索引页面将显示物种列表(可能按“植物”、“灭绝”或“虚构”等类别进行过滤)。用户将能够单击任何列出的物种以显示该物种的详细信息页面,该页面将给出昆虫、蕨类或恐龙的完整描述和照片。详细信息页面还将显示其他信息,例如物种的完整分类分类、地理范围等。
我现有的数据库不完整,但已经包含数十万种“物种”,因此我需要将该数据导入 Wagtail(当然,从头开始为每个现有数据库记录创建 Wagtail 页面根本不切实际)。
在 Wagtail 中导入数据库和访问数据的最佳方式是什么?我可以:
以编程方式(根据此处给出的技术)为当前数据库中的每个物种实例化 Wagtail 页面,以便每个物种都有自己的“永久”页面;
——或者——</p>
将数据导入网站的 Wagtail 数据库,与页面结构无关。然后,我必须创建片段模型来访问数据,并添加代码以根据在这些片段上运行的适当查询提供的数据为任何选定的物种动态呈现页面。
我完全是新手,但方法 1 可能有两个优点:在导入期间创建的预定义页面已经有 slug,我可以轻松地将其转换为索引页面上的可点击链接;并且预定义的页面将被搜索引擎发现。
方法 2 对我来说似乎更干净——将核心“数据数据”与“页面数据”(例如标题和 slug)分开是合乎逻辑的,并且会简化导入/导出过程。但我是否正确,它会降低单个页面对搜索引擎的可见性?除了动态呈现页面所需的编程之外,与方法1相比,它还有其他优点或缺点吗?
(关于方法 2:在 Wagtail 中,如何从基于片段的查询结果动态呈现页面?我知道 RoutablePageMixin,但我发现的示例使用它来访问已经定义的 Wagtail 页面。我想把数据从片段查询到模板,在页面呈现过程中创建一个 slug。一个配方或示例将不胜感激。)