首先,我要承认,我是一个完全陌生的Django。我在尽我所能地学习。我正在阅读一本名为《开始Django电子商务》的书。在不侵犯版权的情况下,也许你们能发现我错在哪里。我用的是Django 1.4.3,我用的书可能是为Django 1写的,也可能是1.1,但是这里。
我base.html我catalog.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>
:
{% 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
和调整我的url .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
完整的步骤列表,请参阅本网站
必须在base.html上添加{% block content %}
<!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 %}
{% block content %}{% endblock %} <!-- you can move this line to first block -->
</body>
</html>
尝试在catalog.html或base.html中插入{% block content %},您的问题可能是因为您继承了catalog
这个问题的答案是人为错误。我在代码中有一个类型,很可能是一个间距问题(遗憾的是我没有使用eclipse)。这个问题的答案是认真阅读,在发布之前仔细检查一切,否则你将不得不非常后悔(像我一样!)我要躲到我爬出来的姜戈岩石下面去!编码快乐!
首先你应该告诉django你创建的应用确实存在。进入settings .py,进入Installed_app,像这样包含你的应用:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'preview.apps.PreviewConfig',
]
那么你必须进入主目录,运行urls.py并添加以下url:
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^$', include ('preview.urls')),
url(r'^admin/', admin.site.urls),
]
之后,你应该在预览文件夹中创建一个python文件,并命名为urls.py,在那里你必须为你的预览应用定义你的url模式。
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', IndexView.as_view()),
]
最后一步是你必须定义视图。为了做到这一点,进入预览文件夹中的views.py并运行views.py
from django.views.generic import TemplateView
class IndexView(TemplateView):
template_name = "index.html"