在Django教程中使用模板

时间:2012-05-17 04:42:25

标签: python django

我正在阅读第4章:Django教程的模板,我正在尝试使用Python在Emacs劣质模式下运行以下内容:

>>> from django import template
>>> t = template.Template('My name is {{ name }}.')
>>> c = template.Context({'name': 'Adrian'})
>>> print t.render(c)
My name is Adrian.
>>> c = template.Context({'name': 'Fred'})
>>> print t.render(c)
My name is Fred.

但我收到错误here

快速搜索表明我应该像这样设置我的DJANGO_SETTINGS_MODULE:

>>> import os
>>> os.environ["DJANGO_SETTINGS_MODULE"] = "settings.py"

但是,我遇到了这个错误:

ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named settings.py

我正在使用Fedora 16.如何正确解决此问题?

4 个答案:

答案 0 :(得分:2)

您可以在python manage.py shell中执行此操作,因为settings.py目录中会有.

否则:

考虑settings.py只是另一个python库,你需要确保将其添加到sys.path然后你可以这样做:

import settings
from django.core.management import setup_environ

setup_environ(settings)  # Setting up the env settings

这会为您的环境设置设置。 [这是正确的方式]

settings.py中没有秘密配方,因为django本身就是python的库,所以除非导入和执行,否则不能默认设置sys.path的任何路径 - 正如我所建议的那样。

答案 1 :(得分:1)

你应该按照另一个答案的建议使用setup_environ

有关此特定异常的提示:DJANGO_SETTINGS_MODULE是Python模块名称,因此它可能不以“.py”结尾。通常,这将是your_django_site.settings,模块/目录your_django_site必须位于sys.path

答案 2 :(得分:0)

项目中没有的所有Django代码都应该从Django REPL运行,可以通过./manage.py shell运行,也可以作为standalone script运行。

答案 3 :(得分:0)

为了测试shell中Django的任何内容,你应该使用Django shell:

python manage.py shell

这将启动一个Python解释器,它将在Python路径上神奇地拥有您的设置文件(以及项目的其余部分)。

(这假设您已经有一个项目。如果没有,请使用django-admin.py startproject my_project_name。)