相信大家在学习the django book第四章模板的时候,根据示例代码运行会出现如下这种错
具体错误我描述为两种方式形成的错误
一种是进入解释器交互环境中进行编码
F:\VideoTxSpace\mysite>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
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 "F:\Python27\lib\site-packages\django\template\base.py", line 123, in __init__
if settings.TEMPLATE_DEBUG and origin is None:
File "F:\Python27\lib\site-packages\django\utils\functional.py", line 184, in inner
self._setup()
File "F:\Python27\lib\site-packages\django\conf\__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." %
ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is und
efined.
另一种是直接在文件中编码,通过python命令运行
myiste\mysite目录下有个testTemplate.py,内容如下
from django import template
t = template.Template('my name is {{ name }}.')
c = template.Context({'name':'wujintao'})
F:\VideoTxSpace\mysite>python F:\VideoTxSpace\mysite\mysite\testTmpelate.py
Traceback (most recent call last):
File "F:\VideoTxSpace\mysite\mysite\testTmpelate.py", line 2, in <module>
t = template.Template('my name is {{ name }}.')
File "F:\Python27\lib\site-packages\django\template\base.py", line 123, in __init__
if settings.TEMPLATE_DEBUG and origin is None:
File "F:\Python27\lib\site-packages\django\utils\functional.py", line 184, in inner
self._setup()
File "F:\Python27\lib\site-packages\django\conf\__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." %
ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is und
efined.
经实践,有三种解决方案
第一种解决方案
进入到mysite目录下,用python manage.py shell启动python解释器环境,manage.py shell命令在启动解释器之前,它告诉Django使用哪个设置文件。 Django框架的大部分子系统,包括模板系统,都依赖于配置文件;如果Django不知道使用哪个配置文件,这些系统将不能工作。
执行程序
F:\VideoTxSpace\mysite>python manage.py shell
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django import template
>>> t = template.Template('my name is {{name}}')
>>> c = template.Context({'name':'wujintao'})
>>> print t.render(c)
my name is wujintao
第二种解决方案
不用通过python manage.py shell开启解释器交互模式,直接在代码开始前中加入如下代码片段
from django.conf import settings
settings.configure()
完整代码
from django import template
from django.conf import settings
settings.configure()
t = template.Template('my name is {{ name }}.')
c = template.Context({'name':'wujintao'})
执行程序
F:\VideoTxSpace\mysite>python F:\VideoTxSpace\mysite\mysite\testTmpelate.py
my name is wujintao.
第三种解决方案
windows下设置环境变量
新增环境变量如下
添加DJANGO_SETTINGS_MODULE 值为mysite.settings
添加PYTHONPATH 值为 F:\Python27\DLLs;F:\VideoTxSpace\mysite
解释
Django搜索DJANGO_SETTINGS_MODULE环境变量,它被设置在settings.py中。例如,假设mysite在你的Python搜索路径中,那么DJANGO_SETTINGS_MODULE应该被设置为:’mysite.settings’
完整代码
from django import template
t = template.Template('my name is {{ name }}.')
c = template.Context({'name':'wujintao'})
执行程序
F:\VideoTxSpace\mysite>python F:\VideoTxSpace\mysite\mysite\testTmpelate.py
my name is wujintao.
附上我程序的结构图,以方便大家对以上方案的理解
F:\VideoTxSpace\mysite这个mysite为python项目名称
- 大小: 7.1 KB
- 大小: 7.4 KB
分享到:
相关推荐
1. **Django框架**:Django是Python编程语言中的一款高级Web开发框架,它遵循MTV(Model-Template-View)设计模式,提供了一整套解决方案,包括数据库模型设计、URL路由、视图处理以及模板渲染等功能,帮助开发者...
在Web开发中,Django是一个强大的Python框架,它提供了一整套解决方案,包括数据库管理、模板引擎、表单处理等。Apache是世界上最流行的HTTP服务器软件,它具有高度的可配置性和稳定性。而mod_wsgi则是Apache的一个...
python web开发 django最好的学习教程 django 推荐书籍
7. **设置(Settings)**:Django项目的设置文件通常命名为settings.py,这个文件包含了项目的配置信息,比如数据库配置、中间件配置、模板配置等。 8. **应用间的关系和协作**:从3.5节的内容可以看出,Django项目中...
标题中的"Python库 | django_models_redis_cache-4.2.2-py3-none-any.whl"指的是一个Python库,名为`django_models_redis_cache`,版本为4.2.2,适用于Python 3环境。这个库是专门为Django框架设计的,目的是利用...
使用这个库时,开发者需要在他们的Django项目中进行适当的配置,例如在`settings.py`文件中添加`django_suit_ckeditor_custom`到`INSTALLED_APPS`列表,并根据需要调整CKEditor的设置。 总结来说,`django_suit_...
【标题】"django-calendar-master_pythondjango_calendar_django_源码" 提供的是一个基于 Django 框架开发的日历应用的源代码。Django 是一个用 Python 编写的高级 Web 开发框架,它鼓励快速开发并遵循“DRY(Don't ...
标题中的“PyPI 官网下载 | django_cors_headers_multi-1.2.0-py2-none-any.whl”指的是Python Package Index(PyPI)上发布的`django_cors_headers_multi`项目的1.2.0版本,这是一个适用于Python 2且不依赖特定硬件...
总结,"djangotest_djangoweb_django_" 是一个适合初学者的 Django 实战项目,涵盖了 Web 开发的关键环节,包括模型、视图、模板的交互,数据库操作,URL 路由,以及表单处理等。通过这个项目,你可以逐步了解并掌握...
`django_pydantic_settings` 解决了这个问题,它允许开发者以更类型安全的方式定义和管理Django项目配置。 ### django_pydantic_settings的关键特性 1. **类型安全**: 使用Pydantic模型定义配置,确保所有设置都...
在Python和Django的开发环境中,`django_cas_dev_server`可以帮助开发者快速搭建测试环境,模拟CAS服务器的行为,测试用户的认证流程。这对于需要集成CAS认证的项目尤其有用,因为它允许在没有真实CAS服务器的情况下...
总结,`django_ai_kit_auth-0.8.2-py3-none-any.whl`是一个与Django框架集成的Python包,专为人工智能应用提供认证和授权解决方案。它简化了Python后端开发,利用了Python在AI领域的强大生态系统,为开发者提供了更...
安装完成后,你需要在Django项目的`settings.py`文件中添加`django_include_by_ajax`到你的`INSTALLED_APPS`列表中。然后,你就可以在视图函数中使用这个库提供的功能,并在前端通过Ajax请求调用这些视图。 总结...
为了解决这些问题,django_chunk_upload_handlers提供了一个优雅的解决方案——分块上传。这种技术允许用户将大文件分割成多个小块,逐个上传,确保了上传的可靠性和效率。 django_chunk_upload_handlers的核心功能...
`django_models_redis_cache` 是一个针对Django框架的特定缓存库,专门用于集成Redis作为模型缓存解决方案。这个库的版本1.5.5是为Python 3编译的,支持多平台("none")和任何架构("any"),并以whl格式提供,这是...
`django_simple_file_handler` 是一个针对Python的后端开发库,特别设计用于简化Django框架中的文件处理操作。Django是一个广泛使用的开源Web框架,它遵循模型-视图-控制器(MVC)架构模式,以Python语言编写,为...
然后,在Django项目的`settings.py`中,将`django_google_cloud_tasks`添加到`INSTALLED_APPS`列表中。接着,配置Google Cloud的相关凭据,通常在`settings.py`中定义环境变量或使用Google Cloud SDK提供的服务帐户...
在实际开发中,使用`django_json_api_model`可以显著提升开发速度,特别是在处理复杂的JSON API数据交换时。例如,当需要为Django应用创建API接口时,可以快速构建出符合JSON API规范的接口,减少了手动编写序列化和...
2. **添加到INSTALLED_APPS**:在项目的`settings.py`文件中,将`django_datatable_view_compat`添加到`INSTALLED_APPS`列表中。 3. **创建视图**:在相应的应用目录下创建一个新的视图,导入`DatatableView`类并...
在Django项目的`settings.py`文件中,将`django_ocs_observation_portal`添加到`INSTALLED_APPS`列表中,接着运行迁移以创建必要的数据库表: ```bash python manage.py migrate ``` 启动Django服务器,即可开始...