面试题:

templates中{% sqr_list 3%}, 生成如下的dropdown list空间
key   texy
1      1的平方是1
2      1的平方是4
3      1的平方是9

请写出sqr_list的实现,


 

# 自定义标签,放在文件夹templatetags
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from django.template import Library
register = Library()

@register.inclusion_tag("menu.html")
def sql_list(x):
    sql_list = []
    for i in range(1, x + 1):
        dict = {}
        dict['key'] = i
        dict['text'] = '%s的平方是%s' % (i, i ** i)
        sql_list.append(dict)
    return {"sql_list":sql_list}
menu.html
<table>
    {% for i in sql_list %}
    <tr>
        <td>{{ i.key }}</td>
        <td>{{ i.key }}的平方是{{i.text}}</td>
    </tr>
    {% endfor %}
</table>

访问页面代码test.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Apollo</title>
</head>
<body>

{% load test %}
{% sql_list 3 %}

</body>
</html>

视图函数

def index(request):
    return render(request,'test.html')

urls.py代码

from django.urls import re_path
from pc.views.role import index
urlpatterns = [
    re_path('test/', index),
]

目录结构如图红色线标记的