1 # sales.views.py
2
3 from django.shortcuts import render
4 from django.http import HttpResponse
5 # 导入Customer 对象定义
6 from common.models import Customer
7
8
9 def list_orders(request):
10 return HttpResponse('路由子表:下面是系统中的所有订单信息')
11
12
13 # 先定义好HTML模板
14 html_template = '''
15 <!DOCTYPE html>
16 <html>
17 <head>
18 <meta charset="UTF-8">
19 <style>
20 table {
21 border-collapse: collapse;
22 }
23 th, td {
24 padding: 8px;
25 text-align: left;
26 border-bottom: 1px solid #ddd;
27 }
28 </style>
29 </head>
30 <body>
31 <table>
32 <tr>
33 <th>id</th>
34 <th>姓名</th>
35 <th>电话号码</th>
36 <th>地址</th>
37 </tr>
38
39 {% for customer in customers %}
40 <tr>
41 {% for name, value in customer.items %}
42 <td>{{value}}</td>
43 {% endfor %}
44 </tr>
45 {% endfor %}
46
47 </table>
48 </body>
49 </html>
50 '''
51
52 from django.template import engines
53
54 django_engine = engines['django']
55 template = django_engine.from_string(html_template)
56
57
58 def listcustomers(request):
59 # 返回一个 QuerySet对象,包含所有的表记录
60 # 每条表记录都是一个dict对象
61 # key 是字段名, value 是字段值
62 # objects是用来操作数据库的Manager接口
63 qs = Customer.objects.values()
64
65 # 检查url中是否有参数phonenumber
66 ph = request.GET.get('phonenumber', None)
67
68 # 如果有,添加过滤条件
69 if ph:
70 qs = qs.filter(phonenumber=ph)
71
72 # # 定义返回给浏览器的字符串
73 # retStr = ''
74 # for customer in qs:
75 # for name, value in customer.items():
76 # retStr += f'{name} : {value} | '
77 # # 一条记录结束后加一个<br>换行
78 # retStr += '<br>'
79 #
80 # return HttpResponse(retStr)
81
82 # 生成html模板中要插入的html片段内容
83 # tableContent = ''
84 # for customer in qs:
85 # tableContent += '<tr>'
86 # for name, value in customer.items():
87 # tableContent += f'<td>{value}</td>'
88 #
89 # tableContent += '</tr>'
90 #
91 # return HttpResponse(html_template % tableContent)
92
93 # 传入渲染模板需要的参数
94 rendered = template.render({'customers': qs})
95 return HttpResponse(rendered)