1

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

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

为什么它 ( {{title }}) 不起作用

我认为我已经很接近让它工作了,但我做不到。

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

所以,我想看到的是:

在此处输入图像描述


但我看到了这个:

在此处输入图像描述


index.html 看起来像:

在此处输入图像描述


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'

在创建项目 (django-admin.py startpriject mysite) 时遇到问题

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

这是一个PATH问题,最后解决了,多亏了 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 前端面板中完成)。

有关于数据库更新的问题

python manage.py syncdb

多亏了SO,这也得到了解决

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 }} )不起作用

我应该改变什么?

我应该重新安装一些东西吗?

4

3 回答 3

1

正如马蒂亚斯在评论中所说,看起来你根本没有真正调用 Django - 这些是普通的 Apache 目录索引(所以自然 Django 不会解析模板,因为它甚至没有被调用)。

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

于 2013-03-29T10:39:47.500 回答
0

您应该使用render快捷方式。

视图.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

于 2013-03-29T10:04:39.617 回答
0

尝试这个:

进口:

from django.shortcuts import render_to_response, RequestContext

视图.py:

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

在模板中这样调用:

{{ title }}
于 2013-03-29T10:00:01.773 回答