欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

django3.1 配置mako模板引擎

程序员文章站 2022-03-11 09:22:59
这里写自定义目录标题django3.1 配置mako模板引擎安装测试mako模板Django集成Mako:(django-mako插件方法)问题处理:django3.1 配置mako模板引擎因为要二次开发HUE的原故.这里需要学习一下mako 模板引擎,安装测试mako模板操作系统:win10相关环境:Python 3.7; Django 3.1Mako是用python语言开发的开源模板引擎,功能很强大,使用起来也很方便,下面介绍一下安装步骤:pip install makopip inst...

django3.1 配置mako模板引擎

因为要二次开发HUE的原故.这里需要学习一下mako 模板引擎,

安装测试mako模板

操作系统:win10
相关环境:Python 3.7; Django 3.1

Mako是用python语言开发的开源模板引擎,功能很强大,使用起来也很方便,下面介绍一下安装步骤:

pip install mako
pip install django-mako

安装完成,到你的python安装目录下的site-packages目录里检查Mako-0.2.5-py2.6.egg文件是否存在,如果存在即代表安装成功了

测试程序Helloword

  1. 运行命令python进入python运行环境
  2. 输入以下python代码进行测试
from mako.template import Template
mytemplate = Template("hello, ${name}!")
print mytemplate.render(name="sand")
  1. 如果你在屏幕上看到了hello, sand!的输出代表你安装成功了

Django集成Mako:(django-mako插件方法)

使用方法:

  1. 在你django项目的settings.py中的MIDDLEWARE_CLASSES里增加一项djangomako.middleware.MakoMiddleware例:
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'djangomako.middleware.MakoMiddleware',
    )
  1. 添加views 方法,例:
from djangomako.shortcuts import render_to_response
def hello_view(request):
    return render_to_response('hello.html', {'name':'sand'})
  1. 到django中映射url请求/hello到上面添加的方法

  2. 添加模板文件hello.html内容如下:
    hello ${name}!

  3. 启动你的django项目,浏览器访问一下http://yourhostname/hello,看下是不是看到返回的hello sand!

问题处理:

  1. 执行 mw_instance = middleware(handler) 报错TypeError: xxx takes 1 positional argument but 2 were given

    解决: 修改类djangomako.middleware.MakoMiddleware 如下图所示: django3.1的中间件都要继承MiddlewareMixin

class MakoMiddleware(MiddlewareMixin):  # update : MakoMiddleware(Object)
def __init__(self, get_response=None):
    """Setup mako variables and lookup object"""
    super().__init__(get_response)  # add for : mw_instance = middleware(handler) 报错TypeError: xxx takes 1 positional argument but 2 were given
    from django.conf import settings
  1. 报错: ModuleNotFoundError: No module named 'middleware’
    修改: import middleware 为 import djangomako.middleware 这里导包有问题

  2. 报错: AttributeError: ‘Settings’ object has no attribute 'TEMPLATE_DIRS’
    解决: settings中加入配置项: TEMPLATE_DIRS = [os.path.join(BASE_DIR, ‘templates’)]

  3. 报错: mako.exceptions.TopLevelLookupException: Cant locate template for uri ‘polls/index.mako’
    解决: settings 中加入:TEMPLATE_DIRS = [os.path.join(BASE_DIR, ‘templates’), os.path.join(BASE_DIR, ‘polls/templates’)]

本文地址:https://blog.csdn.net/u014770372/article/details/110430462

相关标签: django python