我对Web开发非常陌生,以下是我的用例:
我有大量的散景图,每个散景图都在单独的HTML文件中。 简单来说,我想要一个主页,我可以在其中提供 链接到这些图表中的每个图表。但是,在运行时,我会 喜欢编辑这些单独的HTML文件,以便提供链接 返回首页或其他页面。我不想修改 HTML文件是永久的,因此我可以在 网页,也可以在我的系统上进行简单的可视化。
做到这一点的最佳方法是什么? Django之外还有其他技术,我应该考虑做这样的事情吗?
答案 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文档的链接),然后在不知不觉中就可以看到进度。
最好的学习方法是继续尝试!