我学习了HTML / CSS / JS并练习了一些静态站点,只是离线,没有服务器/数据库......现在,我已经在djangoproject上完成了Django的教程(所以我有一个民意调查应用程序),但我不确定如何将两者混合成一个网站。
Django模板如下所示:
{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
但是当我看到django页面的来源时: http://www.michael54.com/hallway
没有任何内容看起来像这个模板,没有{%}}
那么......这个模板在哪里适合页面?
我只是想看看我是如何正确地组合一个页面,所以我知道基本框架然后我可以从那里发展我的能力。现在,我甚至不知道从哪里开始......
答案 0 :(得分:4)
那么......这个模板在哪里适合页面?
这是一个模板!
一般的概念是你的网站可能有许多html页面都包含相同的东西 - 标题栏,导航,常见的css包括等。模板机制的概念是提供一个基本模板,以便新的页面可以使用它,只需要最少的html来填充内容。
模板引擎的另一面是您可以在模型中替换格式化和显示数据。例如,用户配置文件页面可能会传入对象person
,您可能会输出:
<p>Person's Name: {% person.name %}</p>
哪会产生html:
<p>Person's Name: Fred</p>
这让我了解了如何处理模板。模板通过模板处理器传递 - 模板处理器查找{{
和{%
标签,并根据其内容执行相应的操作。
这是MVC概念的一部分。在这个体系结构中,您将项目分为三个部分 - 模型(数据,通常包括操作这些对象的逻辑),控制器(在Django中,这些是视图),它们决定了要显示的内容和视图(在Django,模板中),它决定了如何显示它。这个想法是分离帮助扩展项目。
您可以在没有模型的情况下启动Django项目 - 您只需要一个返回HttpResponse
对象的视图。通常你会使用辅助函数render_to_response
。
答案 1 :(得分:1)
您提供的代码部分是Django模板 - Django将其编译为简单的HTML代码。
这些{% %}
标记只是Django的指令,因此它应该知道它应该对它做些什么,即检查一些if
语句或在for
循环内执行代码。
让我们再次看到这个模板:
{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
现在,假设您的latest_poll_list
包含2个项目的列表,Django模板系统会将上述代码编译为以下代码:
<ul>
<li><a href="/polls/1/">Here is first poll's question</a></li>
<li><a href="/polls/2/">Here is second poll's question</a></li>
</ul>
或者,如果latest_poll_list
变量中没有民意调查,则显示:
<p>No polls are available.</p>
我相信您应该了解有关服务器端渲染的更多信息,但我不能推荐任何资源。
答案 2 :(得分:0)
您可以在(github)上查看Mezzanine A Django CMS的来源,看看如何安排像css和JS这样的静态文件(它使用bootstrap但是主体)对于自定义是一样的