Django mako 的使用(七)

Django mako 的使用

6.6 mako 的使用


  • 安装 mako

    pip install mako

image-20220524204410587

  • 创建子应用 makos
    • python .\manage.py startapp makos
      • 创建 base_render.py 文件
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 settings


def 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 Makos

urlpatterns = [
    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>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她似晚风般温柔789

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值