python交互式环境,django模板报错:django.core.exceptions.ImproperlyConfigured
2014-11-14 18:01
585 查看
环境:
ubuntu
django 1.5
virtualenv环境中
方法1:
摘自 The Django Book 2.0
我们先来看一下为什么不引入setting会报错。
启动python有两种方式:python manage.py shell和python。这两个命令 都会启动交互解释器,但是manage.py shell命令有一个重要的不同: 在启动解释器之前,它告诉Django使用 哪个设置文件。 Django框架的大部分子系统,包括模板系统,都依赖于配置文件;如果Django不知道使用哪 个配置文件,这些系统将不能工作。如果你想知道,这里将向你解释它背后是如何工作的。 Django搜索DJANGO_SETTINGS_MODULE环境变 量,它被设置在settings.py中。例如,假设mysite在你的Python搜索路径中,那么 DJANGO_SETTINGS_MODULE应该被设置为:’mysite.settings’。
当你运行命令:python manage.py shell,它将自动帮你处理DJANGO_SETTINGS_MODULE。 在当前的这 些示例中,我们鼓励你使用`` python manage.py shell``这个方法,这样可以免去你大费周章地去配置那些你 不熟悉的环境变量。
随着你越来越熟悉Django,你可能会偏向于废弃使用`` manage.py shell`` ,而是在你的配置文 件.bash_profile中手动添加 DJANGO_SETTINGS_MODULE这个环境变量。
所以,另两种解决方案就是:1.使用 python manage.py shell启动Python2.在你的配置文 件.bash_profile中手动添加 DJANGO_SETTINGS_MODULE这个环境变量。
本文出自 “Me & Done” 博客,请务必保留此出处http://medone.blog.51cto.com/9469723/1576601
ubuntu
django 1.5
virtualenv环境中
(web01)milo@nf:~/.virtualenvs/web01/dj_01/pro01$ python Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from django import template >>> t = template.Template('My name is {{ name }}.') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/milo/.virtualenvs/web01/local/lib/python2.7/site-packages/django/template/base.py", line 123, in __init__ if settings.TEMPLATE_DEBUG and origin is None: File "/home/milo/.virtualenvs/web01/local/lib/python2.7/site-packages/django/conf/__init__.py", line 52, in __getattr__ self._setup(name) File "/home/milo/.virtualenvs/web01/local/lib/python2.7/site-packages/django/conf/__init__.py", line 45, in _setup % (desc, ENVIRONMENT_VARIABLE)) django.core.exceptions.ImproperlyConfigured: Requested setting TEMPLATE_DEBUG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.原因是缺少环境变量,我们导入环境变量即可。解决方法如下。
方法1:
(web01)milo@nf:~/.virtualenvs/web01/dj_01/pro01$ python Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from django.conf import settings >>> settings.configure() >>> from django import template >>> t = template.Template('My name is {{ name }}.') >>> 可以正常使用,无报错信息。方法2:
(web01)milo@nf:~/.virtualenvs/web01/dj_01/pro01$ python manage.py shell # 以此方式进入交互式环境 Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from django import template >>> t = template.Template('My name is {{ name }}.') >>> 可以正常使用,无报错信息。平时测试django的交互式环境建议以此方式进入交互模式,以免不必要的麻烦。方法3:
(web01)milo@nf:~/.virtualenvs/web01/dj_01/pro01$ vim ~/.bashrc 增加如下内容: export DJANGO_SETTINGS_MODULE=pro01.settings # 其中pro01是django的项目名称 # 实际就是调用的项目的配置文件settings.py 然后执行: (web01)milo@nf:~/.virtualenvs/web01/dj_01/pro01$ source ~/.bashrc milo@nf:~/.virtualenvs/web01/dj_01/pro01$ workon web01 (web01)milo@nf:~/.virtualenvs/web01/dj_01/pro01$ python Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from django import template >>> t = template.Template('My name is {{ name }}.') >>>#################################################################
摘自 The Django Book 2.0
我们先来看一下为什么不引入setting会报错。
启动python有两种方式:python manage.py shell和python。这两个命令 都会启动交互解释器,但是manage.py shell命令有一个重要的不同: 在启动解释器之前,它告诉Django使用 哪个设置文件。 Django框架的大部分子系统,包括模板系统,都依赖于配置文件;如果Django不知道使用哪 个配置文件,这些系统将不能工作。如果你想知道,这里将向你解释它背后是如何工作的。 Django搜索DJANGO_SETTINGS_MODULE环境变 量,它被设置在settings.py中。例如,假设mysite在你的Python搜索路径中,那么 DJANGO_SETTINGS_MODULE应该被设置为:’mysite.settings’。
当你运行命令:python manage.py shell,它将自动帮你处理DJANGO_SETTINGS_MODULE。 在当前的这 些示例中,我们鼓励你使用`` python manage.py shell``这个方法,这样可以免去你大费周章地去配置那些你 不熟悉的环境变量。
随着你越来越熟悉Django,你可能会偏向于废弃使用`` manage.py shell`` ,而是在你的配置文 件.bash_profile中手动添加 DJANGO_SETTINGS_MODULE这个环境变量。
所以,另两种解决方案就是:1.使用 python manage.py shell启动Python2.在你的配置文 件.bash_profile中手动添加 DJANGO_SETTINGS_MODULE这个环境变量。
本文出自 “Me & Done” 博客,请务必保留此出处http://medone.blog.51cto.com/9469723/1576601
相关文章推荐
- python交互式环境,django模板报错:django.core.exceptions.ImproperlyConfigured
- django交互模式使用模板报:django.core.exceptions.ImproperlyConfigured
- python基于Django框架编译报错“django.core.exceptions.ImproperlyConfigured”的解决办法?
- django交互模式使用模板报:django.core.exceptions.ImproperlyConfigured
- 搭建python的web环境 Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器环境
- windows下配置python ,django,mysql,memcahe开发环境
- Python+Django在windows下的开发环境配置
- [Dynamic Language] Python Django: 模板引擎(3)模板标签和过滤器
- Python+Django在windows下的开发环境配置图解
- python Django模板中文错误
- eclipse+pydev+Django安装和配置Python开发环境(For Windows OS)
- Python+Django在windows下的开发环境配置图解
- django+fastcgi+flup+MsQLdb构建python的web开发环境
- windows下配置apache2.2+python2.5+mod_python=Django环境
- Django1.3.1 with python2.5 环境配置
- windows上python和django开发环境的安装和配置
- python下的web开发框架-Django,django模板的使用
- Apache+MySQL+Python+Django在Windows下环境搭建指南
- mysql+apache+python+mod_python+MySQLdb+django环境安装(转)
- windowXP下解决python2.7+Django-1.3.1中:importError:no module named django.core