Django mako 的使用
- 6.6 mako 的使用
6.6 mako 的使用
- 安装 mako
pip install mako
- 创建子应用 makos
- python .\manage.py startapp makos
- 创建 base_render.py 文件
- python .\manage.py startapp makos
from django.http import HttpResponse
from django.template import RequestContext
from django.template.context import Context
from mako.lookup import TemplateLookup
from django.conf import settingsdef render_to_response(request, template, data=None):context_instance = RequestContext(request)path = settings.TEMPLATES[0]['DIRS'][0]lookup = TemplateLookup(directories=[path],output_encoding='utf-8',input_encoding='utf-8')mako_template = lookup.get_template(template)if not data:data = {}if context_instance:context_instance.update(data)else:context_instance = Context(data)result = {}for d in context_instance:result.update(d)result['csrf_token'] = '<input type="hidden" name="csrfmiddlewaretoken" value="{}"/>'.format(request.META.get('CSRF_COOKIE', ''))return HttpResponse(mako_template.render(**result))
- views.py
from django.views import View
from django.shortcuts import render
from .base_render import render_to_response # 导入我们创建的 render_to_response
# Create your views here.class Makos(View):def get(self, request):data = {'name': '小钟', 'age': 21}return render_to_response(request, 'makos.html', data=data)
- urls.py
from django.urls import path
from .views import Makosurlpatterns = [path('makos/', Makos.as_view()),
]
- templates
- makos.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<br>姓名: ${name} <br>年龄: ${age}<br><%!from django.conf import settings%>获取模板路径: ${settings.TEMPLATES[0]['DIRS'][0]}
</body>
</html>