使用Django编辑先前生成的HTML文件

时间:2018-09-21 10:10:02

标签: django

我对Web开发非常陌生,以下是我的用例:

  

我有大量的散景图,每个散景图都在单独的HTML文件中。   简单来说,我想要一个主页,我可以在其中提供   链接到这些图表中的每个图表。但是,在运行时,我会   喜欢编辑这些单独的HTML文件,以便提供链接   返回首页或其他页面。我不想修改   HTML文件是永久的,因此我可以在   网页,也可以在我的系统上进行简单的可视化。

做到这一点的最佳方法是什么? Django之外还有其他技术,我应该考虑做这样的事情吗?

1 个答案:

答案 0 :(得分:1)

如果大多数内容都是静态的,则可以看看Jekyll

通过include功能,您可以创建一个带有“链接回首页”或实际上您想要避免重复的其他内容的文件(例如导航栏,页眉,页脚)。

Bootstrap 4是您使网站看起来更有光泽的朋友。

在构建站点时,可以使用jekyll serve运行开发服务器,该服务器允许您从浏览器连接到开发服务器,并在进行更改时预览更改。可以在http://localhost:4000/

之类的地方访问

准备发布时,可以使用jekyll build命令,该命令将所有静态HTML文件输出到_site目录。请注意,此时,Jekyll自动处理“在每个页面中放置主页链接”的步骤,最终得到一个目录,您可以将目录直接上传到任何托管平台。因此,原始HTML文件/合并图表可以保留其原始格式,以供其他地方使用。

此方法可能比在您的用例中使用Django效率更高,后者似乎需要提供许多已经存在的静态内容。在Django投入生产的情况下,您将需要一个应用程序服务器,一个Web服务器以及一个数据库,这可能会导致更多错误。

要获得奖励积分,完成托管设置后,将整个事情放在CloudFlare后面以降低托管成本,并提高世界各地访客的访问速度!

祝你好运。

编辑:对评论的回复:*

  

您是说我应该完全放弃django吗?

如果目的只是为了向公众提供您现有的HTML文件,而不需要身份验证,用户通过前端或更高级的后端功能对内容进行编辑,那么Django可能在此任务上显得过高

  

Jekyll与Django有何不同?

Django是Python Web Framework,它使您可以构建一个交互式站点,用户或工作人员可以在该站点上登录,发表文章,发表评论等。它的主要功能之一是可以通过“模型”和“然后在后台自动生成所有管理端表单。这意味着您只需花费很少的工作,就可以立即启用网站的“管理门户”端,非常适合大型博客或新闻网站等用例。然后,您将构建前端,该前端也可以是交互式的。将其投入生产是一项单独的任务,涉及配置多个服务器组件。

Jeykll则简单得多,基本上可以为您提供一种创建模板HTML文件的方法(避免需要为导航栏之类的代码重复代码),然后使用jekyll build命令输出{ {1}}目录,可以直接上载到基本Web服务器。 这是至关重要的部分,因为您只需要可以提供静态内容的Web服务器,而不需要python,数据库,诸如UWSGI之类的应用程序服务器等

让我们看一下Jeyll Docs中的示例,并牢记用例。

您可以定义一个YML文件,其中包含所有图表的列表:

_site

您之前提到您已经拥有HTML文件,因此实际上您在这里所做的是列出了这些文件,这些文件可由前端解释。

HTML模板部分如下所示:

docs_list_title: All Charts here.
docs:

- title: A Lovely Bokeh Chart.
  url: bokeh_chart_1.html

- title: This Bokeh Chart is even Better
  url: bokeh_chart_2.html

这将显示所有图表的链接列表,其中链接文本为标题。

很显然,您可以进一步将更多信息添加到YML文件中,例如在每个url下方放置<h2>{{ site.data.samplelist.docs_list_title }}</h2> <ul> {% for item in site.data.samplelist.docs %} <li><a href="{{ item.url }}" alt="{{ item.title }}">{{ item.title }}</a></li> {% endfor %} </ul> ,然后可以在模板的for循环中以publisher: someone的形式访问它

  

可以同时使用Jekyll,Django和Bootstrap这样的工具吗?

Bootstrap可以与Django Jekyll一起使用,因为它是一个CSS库,用于控制如何在用户浏览器中呈现HTML。查看文档以获取更多有关其功能的示例。

一个好的起点可能是从Start Bootstrap之类的地方下载主题。将其作为ZIP文件后,可以将其放入Jeykll项目中,并尝试使用{{item.publisher}}通过开发服务器进行渲染。然后,您可以删除导航栏或标头代码以分隔jekyll serve个文件(请参阅我先前指向Jeykll文档的链接),然后在不知不觉中就可以看到进度。

最好的学习方法是继续尝试!