面试题:
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), ]
目录结构如图红色线标记的
