首先,我想承认,我对 Django 完全陌生。我正在尽可能地学习。我正在阅读一本名为“Beginning Django E-Commerce”的书。在不希望侵犯版权的情况下,也许你们可以发现我哪里出错了。我正在使用 Django 1.4.3,我正在使用的书可能是为 Django 1 编写的,也许是 1.1,但这里有。
我的 base.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "XHTML1-s.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>{% block title %}{% if page_title %}{{ page_title }} - {% endif %} {{ site_name }}{% endblock %}</title> <meta name="keywords" content="{{ meta_keywords }}" /> <meta name="description" content="{{ meta_description }}" /> </head> <body> {% block site_wrapper %}{% endblock %} </body> </html>
我的目录.html:
{% extends "base.html" %}
{% block site_wrapper %}
<div id="main">
<a href="#content" class="skip_link">Skip to main content</a>
<div id="banner">
<div class="bannerIEPadder">
<div class="cart_box">
[link to cart here]
</div>
Modern Musician
</div>
</div>
<div id="navigation">
<div class="navIEPadder">
[navigation here]
</div>
</div>
<div id="middle">
<div id="sidebar">
<div class="sidebarIEPadder">
[search box here]
<br />
[category listing here]
</div>
</div>
<div id="content">
<a name=”content”></a>
<div class="contentIEPadder">
{% block content %}{% endblock %}
</div>
</div>
</div>
<div id="footer">
<div class="footerIEPadder">
[footer here]
</div>
</div>
</div>
{% endblock %}
我的 index.html:
{% extends "catalog.html" %}
{% block content %}
<h2>Welcome!</h2>
{% endblock %}
所有这些文件都存储在模板目录中。此时的书建议我运行以下命令:
python manage.py startapp preview
并调整我的 urls.py:
urlpatterns = patterns('', ... (r'^catalog/$', 'preview.views.home'), )
调整预览目录下的views.py:
from django.shortcuts import render_to_response
def home(request):
return render_to_response("index.html")
然后你应该能够看到一个页面,上面写着:
跳转到主要内容 [此处链接到购物车] 现代音乐家 [此处导航] [此处搜索框] [此处分类列表] 欢迎![此处为页脚]
但是,我得到的只是一个空白页。谁能弄清楚为什么?(这本书可能只是过时了)当我查看空白页的来源时。
这实际上是 base.html 的空白渲染。在开发服务器中,我没有错误:
python manage.py runserver localhost:8000 (wd: ~/websites/ecomstore)
Validating models... 0 errors found Django version 1.4.3, using settings 'ecomstore.settings'
Development server is running at http://www.localhost.com:8000/ Quit the server with CONTROL-C.
[01/Apr/2013 02:13:06] "GET /catalog/ HTTP/1.1" 200 352
[01/Apr/2013 02:13:08] "GET /catalog/ HTTP/1.1" 200 352
[01/Apr/2013 02:13:09] "GET /catalog/ HTTP/1.1" 200 352
[01/Apr/2013 02:33:33] "GET /catalog/ HTTP/1.1" 200 352