我第一次尝试使用Django作为Web框架。
我的views.py函数如下所示:
def display(request):
find_duplicate()
return render_to_response('index.html', {'obj': my_model.objects.order_by('id')})
def get_dict():
d={}
for e in my_model.objects.all():
col2 = e.col2
col3 = e.col3
col2 = unicode(col2).encode('UTF8')
col3 = unicode(col3).encode('UTF8')
d.setdefault(col2, [])
d[col2].append(col3)
del d['']
return d
def find_duplicate():
#print(d)
d = get_dict()
for k,v in d.items():
if len(v) > 1:
name=[]
id=[]
#print(k)
for i in v:
#print(i)
reg1 = i.split("(")[0]
name.append(reg1)
reg2 = re.search(r'[A-Z0-9]*', i.split("_")[1])
id.append(reg2.group())
#print(name)
#print(id)
我的index.html如下:
<body>
<div class="container">
<table align="center">
<tr>
<th bgcolor="#f0a00c">Col1</th>
<th bgcolor="#f0a00c">Col2</th>
<th bgcolor="#f0a00c">Col3</th>
<th bgcolor="#f0a00c">Col4</th>
<th bgcolor="#f0a00c">Col5</th>
</tr>
{% for b in obj %}
<tr>
<td>{{ b.col1 }}</td>
<td>{{ b.col2 }}</td>
<td>{{ b.col3 }}</td>
<td>{{ b.col4 }}</td>
<td>{{ b.col5 }}</td>
</tr>
{% endfor %}
</table>
</div> <!-- /container -->
<script>
var col21 = [], col31 =[];
{% for b in obj %}
col21.push("{{b.col2 }}");
col31.push("{{b.col3 }}");
{% endfor %}
console.log(col21);
console.log(col31);
</script>
</body>
我的urls.py:
urlpatterns = patterns(
'',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'myapp.views.display'),
)
所以,现在index.html显示了col2排序的mysql数据库,如下所示:
Col2 | Col3 | Col4
1 | Name1(something_1234) | Some_date
1 | Name1(something_3456) | Some_date
2 | Name3(something_7890) | Some_date
2 | Name4(something_0988) | Some_date
现在,views.py中的get_dict()
函数返回字典d
,如下所示:
{'1': ['Name1(something_1234)', 'Name1(something_3456)'], '2': 'Name3(something_7890)', 'Name4(something_0988)']}
find_duplicate()
函数解析name
的每个元素的id
和Col3
部分。因此,该函数中的print(name)
将为names
(num)提供ids
和key
,即['Name1', 'Name1']
&amp;密钥['1234', '3456']
的{{1}}。
现在,基于此,我想在表格元素上显示红框,如下所示:
因此,对于Col2中的所有值,如果任何2值相同,则应在它们周围显示一个框,然后对于该Col2值检查1
部分和name
部分,然后相应地展示它们周围的盒子。
现在我只能显示表格,但如何显示表格以及表格元素周围的方框?