django3.1 配置mako模板引擎
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
- 运行命令python进入python运行环境
- 输入以下python代码进行测试
from mako.template import Template
mytemplate = Template("hello, ${name}!")
print mytemplate.render(name="sand")
- 如果你在屏幕上看到了hello, sand!的输出代表你安装成功了
Django集成Mako:(django-mako插件方法)
使用方法:
- 在你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',
)
- 添加views 方法,例:
from djangomako.shortcuts import render_to_response
def hello_view(request):
return render_to_response('hello.html', {'name':'sand'})
-
到django中映射url请求/hello到上面添加的方法
-
添加模板文件hello.html内容如下:
hello ${name}! -
启动你的django项目,浏览器访问一下http://yourhostname/hello,看下是不是看到返回的hello sand!
问题处理:
-
执行 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
-
报错: ModuleNotFoundError: No module named 'middleware’
修改: import middleware 为 import djangomako.middleware 这里导包有问题 -
报错: AttributeError: ‘Settings’ object has no attribute 'TEMPLATE_DIRS’
解决: settings中加入配置项: TEMPLATE_DIRS = [os.path.join(BASE_DIR, ‘templates’)] -
报错: 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
上一篇: 兰顿蚂蚁html版
下一篇: 用open cv 读取图像参数