`

Django 1.8.2 中使用 HamlPy的方法

 
阅读更多

       在 Django 1.8 之前,如果要在项目中使用 HamlPy 很简单,只需要在项目的 settings.py中增加一个配置TEMPLATE_LOADERS 即可。可以参考官方文档:https://github.com/jessemiller/HamlPy

       但如果你将 Django 版本升级到Django 1.8.2 (写此文时最高是1.8.2) 后,你就会发现之前的模板文件出问题了:用浏览器访问时直接把模板的原始内容输出来了,并未进行正确的转换。

       经排查发现在1.8 中原来的这种用法已经被标注为 Deprected 了(原文链接),如下所示:

 

 

 

 正确的做法是将以前的TEMPLATE_LOADERS中的内容,放到 OPTIONS里面的'loaders'配置中,如下所示:

 

修改前:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ]
        },
    },
]

 
 修改后:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['templates'],
        'APP_DIRS': False,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            'loaders':[
                'hamlpy.template.loaders.HamlPyFilesystemLoader',
                'hamlpy.template.loaders.HamlPyAppDirectoriesLoader'
            ],
        },
    },
]

 

在上面的配置中发生了两处变化,

变化一: 'APP_DIRS': True, 变成了 'APP_DIRS': False 也就是说你之前如果将模板文件放到每个 app 下面的话,此时可能必须要移到外面了,或者采用其他方法变通一下。

变化二: 在 OPTIONS 中增加了 loaders的配置,见上面代码。

 

特此记录,帮大家少走弯路。

  • 大小: 82.2 KB
分享到:
评论

相关推荐

    django 1.8.2官方中文文档

    在 Django 1.8.2 中,URL 路由系统更加强大,支持更复杂的路由规则和命名,方便在模板中引用。 六、表单和验证 Django 提供了内置的表单系统,可以自动生成 HTML 表单并进行数据验证。表单类可以基于模型或自定义...

    django1.8.2中文文档

    在 Django 1.8.2 中,你可以使用 Class-Based Views 来编写更加简洁和可复用的视图代码。 **模板(Templates)** Django 的模板系统是一种声明式语言,允许你以 HTML 的形式描述动态内容。它支持变量插入、控制流...

    Django-1.8.2-中文文档

    在定义了模型之后,开发者需要在Django的`settings.py`文件中通过`INSTALLED_APPS`配置项来告诉Django框架使用这些模型。然后,可以通过`python manage.py makemigrations`和`python manage.py migrate`命令来生成...

    django4中文文档

    Django内置了一个后台数据管理系统,经简单配置后,再编写少量代码即可使用完整的后台管理功能。 强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。 丰富的模板语言。Django模板语言功能丰富...

    ecommerce_website_development:本项目基于Django1.8.2等来开发一个电商平台,可实现注册,登录,浏览,购买,支付等全部常用功能

    本项目基于Django1.8.2等来开发一个电商平台,可实现注册,登录,浏览,购买,支付等全部常用功能。 运行方式: 修改如下文件的名称:去掉.example 修改settings.example.py为settings.py关联相关参数设置为本地参数...

    基于Django的 海鲜配送平台(PC端)

    这个项目基于Django 1.8.2开发,运用MVT三层思想,开发环境为:Linux + pycharm + Django 1.8.2 ,用到的技术主要有:celery ,Fdfs,redis,mysql等。

    Python库 | django_hamlpy-0.83-py2.py3-none-any.whl

    安装完成后,可以在Django项目的设置中添加`'hamlpy'`到`INSTALLED_APPS`列表,然后就可以在模板文件中使用`.html.haml`扩展名来编写HAML模板了。 在实际应用中,`django_hamlpy` 提供了一个模板引擎,将HAML编译成...

    django4.0官方中文文档

    本篇将深入探讨Django 4.0官方中文文档中的关键知识点。 1. **快速入门**:官方文档首先会介绍如何快速搭建Django环境,包括安装步骤、创建项目和应用、数据库配置等基础操作。新手开发者可以通过这些章节迅速上手...

    django 安装包

    在本文中,我们将深入探讨Django 1.8.2版本的关键特性和安装过程。 首先,Django的核心设计理念是“快速开发、可重用组件和‘Don't Repeat Yourself’(DRY)原则”。它提供了MVC(模型-视图-控制器)架构的变体,...

    Django 项目中使用的密码原语的 Rust 端口_rust_代码_下载

    Django Project中使用的密码原语的 Rust 端口。 Django 的django.contrib.auth.models.User类有一些处理密码的方法,比如set_password()and check_password(); DjangoHashers实现了这些方法背后的原始函数。支持...

    异步任务队列Celery在Django中的使用方法

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务。在同事的指引下接触了Celery这个异步任务队列框架,鉴于网上...

    Django 中文文档

    Django是一个使用Python语言编写的高级Web框架,它鼓励快速开发和干净、实用的设计。Django遵循MVC(模型-视图-控制器)设计模式,使得Web开发更加模块化和可维护。以下是根据给定文件内容整理出的Django中文文档的...

    Django10个使用技巧

    1. **使用相对路径**:在settings.py文件中使用`os.path`库来定义基础目录,这样可以确保在项目迁移时,配置中的路径依然有效。例如,定义`TEMPLATE_DIRS`时,可以使用`BASE_DIR + '/templates'`。 2. **利用{% url...

    django中文官方文档

    django中文文档的介绍,django 官方文档说明 django 官方文档说明 django 官方文档说明

    Django2.0中文文档

    在了解Django的过程中,我们会深度解释Django到底做了哪些工作以及如何使用它来构建Web应用。同时,我们还会在适当的地方讨论更高级的概念,解释如何在自己的项目中高效地使用这些工具。通过学习本书,读者将能够...

    Python-Django消息库用于从传输方法中分离内容

    "Python-Django消息库用于从传输方法中分离内容"这一主题,主要关注的是Django框架中的消息系统,它是如何帮助开发者实现应用内消息传递并解耦内容与传输方式的。 Django的消息系统允许开发者存储用户相关的状态...

    Django中文官方文档(取自usyiyi)

    这是django1.8.2文档中文翻译,取自http://python.usyiyi.cn/translate/django_182/index.html,有兴趣可以看一看

    python开发web框架django使用教程

    Python Django框架使用教程 Python Django是一种流行的Web开发框架,它提供了一个高效、灵活和可扩展的开发环境。下面是 Python Django框架的使用教程: 安装Django 1. 下载Django-1.8.2.tar.gz压缩包,并将其...

    Django异步任务线程池实现原理

    在Django中,使用线程池的目的不仅仅是为了异步执行任务,还需要能够对这些异步任务进行有效的管理和监控。通过返回一个“期程”(future)对象,可以跟踪任务的执行状态,了解任务是否仍在执行中。此外,全局线程池...

Global site tag (gtag.js) - Google Analytics