django不解析{{title}}

时间:2013-03-29 09:48:03

标签: python django parsing python-2.7 django-templates

我在 settings.py 中找不到 TEMPLATE_DIR ,告诉我的模板文件在哪里。

此外,当我转到我的 index.html (您可以在下面看到)时,解析不起作用(对于exacmle {{ title }},您可以在下面的中看到views.py )。

为什么({{title }}有效?

我认为我如此接近使其成功,但我不能。

另外,我在SO中找不到任何相关主题。

所以,我想看到的是:

enter image description here

<小时/> 但我明白这一点:

enter image description here

<小时/> index.html看起来像:

enter image description here

<小时/> index.html来源:

<!DOCTYPE html>
<html>
<body>

<h1>My First Heading</h1>

<div class="container">
   <h1>First Blog </h1>
   <h2>{{ title }}</h2>
   <h3>Posted on {{ date }} by {{ author }}</h3>
   <p>{{ body }}</p>
</div>

</body>
</html>

<小时/> view.py 如下所示:

# Create your views here.

from django.shortcuts import render_to_response

from blog.models import posts

def home(request):
    return render_to_response('index.html' {'title :'My First Post'})
~

<小时/> models.py 似乎是这样的:

from django.db import models

# Create your models here.

class posts(models.Model):

    author = models.CharField(max_lenght = 30)
    title = models.CharField(max_lenght = 100)
    bodytext = models.TextField()
    timestamp = models.DateTimeField()

以下是我之前做过的事:

安装了Python 2.7.2

user@domain.com [~]# python -V
Python 2.7.2

安装了Django 1.5

user@domain.com [~]# python
Python 2.7.2 (default, Mar 27 2013, 12:07:49)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from django import get_version
>>> get_version()
'1.5'

had problems about creating my project (django-admin.py startpriject mysite)

username@domain.com [~/www/domain/]# django-admin.py startproject mysite
-bash: django-admin.py: command not found

这是一个 PATH 问题,最后是solved,感谢SO,我已经成功创建了我的项目

然后我像这样修改了models.py(创建一个简单的博客):

from django.db import models

# Create your models here.

class posts(models.Model):

    author = models.CharField(max_lenght = 30)
    title = models.CharField(max_lenght = 100)
    bodytext = models.TextField()
    timestamp = models.DateTimeField()

安装了MySQL-python 1.2.4

username@domain.com [~]# python
Python 2.7.2 (default, Mar 27 2013, 12:07:49)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

我创建了一个 mysql数据库和一个用户,将用户添加到数据库并提供了所有权限(在bluehost前端面板中完成)。

had problems about database update

python manage.py syncdb

感谢SO,that has been also solved

user@domain.com [~/www/domain/mysite]# python manage.py syncdb 
Creating tables ... 
Creating table auth_permission 
Creating table auth_group_permissions 
Creating table auth_group 
Creating table auth_user_groups 
Creating table auth_user_user_permissions 
Creating table auth_user Creating table django_content_type 
Creating table django_session 
Creating table django_site 

You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no):

为什么({{title}})有效?

我应该改变什么?

我应该重新安装吗?

3 个答案:

答案 0 :(得分:1)

正如马蒂亚斯在评论中所说,它看起来并不像你实际上正在调用Django那些 - 这些是正常的Apache目录索引(所以Django自然不会解析模板,因为它甚至没有被召唤。)

由于您刚刚开始,您根本不应该使用Apache,而是按照教程中的说明启动本地开发服务器(./manage.py runserver)。

答案 1 :(得分:0)

试试这个:

进口:

from django.shortcuts import render_to_response, RequestContext

Views.py:

 return render_to_response('index.html',  {'title' :Your_variable_name}, context_instance=RequestContext(request))

在模板中这样调用:

{{ title }}

答案 2 :(得分:0)

您应该使用render快捷方式。

views.py

from django.shortcuts import render

def my_view(request):
    return render(request, 'index.htm', {'title': 'Hey!'})

这具有将请求实例添加到强制使用RequestContext的上下文中的附加优点。在此处阅读:https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render