将现有的html页面合并到Django中

时间:2016-05-11 13:16:42

标签: python django

我有几百个静态html页面,带有一个索引html页面,我需要将它带入Django。我无法弄清楚最简单的方法,我知道我错过了一些简单的事情。有什么建议? 没有什么特别需要,只需要将它们转储到目录中并允许用户导航到它们。

2 个答案:

答案 0 :(得分:0)

如果这些是您不打算再次触摸的旧版静态页面,那么我会将django从中删除。我将它们全部放在目录或子域中并直接从服务器提供它们(可能是nginx,也许是apache,无论你使用什么)。作为一般规则,您不希望Django提供静态资产,您希望代理服务器为它们提供服务。

您可以将它们移动到Django并像其他Django静态资产一样管理它们,如Managing Static Files Documentation中所述,但是如果它们已经存在,那么就像将它们作为服务一样没有很多优势概述如上。

最后,如果您希望将它们完全集成到Django站点中,那么您应该从the template documentation开始。

答案 1 :(得分:0)

你需要为每个html模板创建一个视图和一个url,我将在这里给你一个简单的例子,但强烈建议你阅读django文档或教程:

首先,在views.py文件中创建一个视图:

from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.views.generic import View


class LoadTemplateView(View):

    template_name = ['thenameofyourdjangoapp/yourtemplatename.html']
    #You put any code you may need here
    def get(self, request, *args, **kwargs):

        return render(request, self.template_name)

然后,您必须创建一个在urls.py文件中读取该视图的URL:

from django.conf.urls import patterns, url
#Here you import from views the view you created
from .views import LoadTemplateView

urlpatterns = patterns(
       url(r'^myurl/$', LoadTemplateView.as_view(), name="load_template"),
)

最后,在您说的主页html模板中,您将此网址分配给提交按钮,以便通过您在urls.py上给出的名称来调用它(在这种情况下为load_template):

<html>
  <body>
     <div>
        <a class="option-admin" id="id_go" href ="{% url 'yourdjangoappname:load_template' %}"> Go to template </a>

  </body>
</html>
        </div>

正如我所说,最好还是阅读完整的文档:

https://docs.djangoproject.com/en/1.9/