如何用Django实现数据库查询与Web动态展示?及学习途径咨询
用Django实现分组统计并联动前端
1. 确认模型定义
先确保你的models.py里已经有对应cc_statistic表的模型,示例如下:
from django.db import models class CcStatistic(models.Model): company = models.CharField(max_length=255) # 其他字段根据你的表结构补充 class Meta: db_table = 'cc_statistic' # 指定对应数据库表名
2. 在views.py中用ORM实现统计
不需要依赖pymysql,Django ORM完全能实现你的需求,代码如下:
from django.shortcuts import render from .models import CcStatistic def dashboard(request): # 按company分组统计数量,降序取前5条 top_companies = CcStatistic.objects.values('company') \ .annotate(count=models.Count('id')) \ .order_by('-count')[:5] # 将统计结果传入模板 return render(request, 'dashboard.html', {'top_companies': top_companies})
values('company'):指定按company字段分组annotate(count=models.Count('id')):统计每个分组的记录数,命名为countorder_by('-count'):按统计数量降序排列[:5]:截取前5条结果,对应SQL中的LIMIT 5
3. 在HTML模板中动态渲染
在dashboard.html中通过模板语法循环遍历数据即可:
<div class="top-company-stats"> <h3>Top 5 公司统计</h3> <ul> {% for item in top_companies %} <li>{{ item.company }}:{{ item.count }} 条</li> {% endfor %} </ul> </div>
除Stack Overflow外的高效Django学习途径
- 官方生态资源:Django Packages网站收录了大量成熟的第三方库和示例项目,很多库的README包含完整实战场景,可直接参考;官方YouTube频道的视频教程以实战为导向,比纯文档更易理解。
- 专业书籍:《Django for Professionals》侧重实战项目开发,能快速掌握从搭建到上线的完整流程;《Two Scoops of Django》总结了行业最佳实践,帮你建立规范的开发思维。
- 国内技术社区:掘金、知乎的Django专栏有大量开发者分享的实战细节、踩坑经验,内容更贴合国内开发场景。
- 社区周刊:《Django News》每周更新最新的Django生态动态、插件、教程,能快速跟进技术趋势。
- 开源项目源码:在GitHub上搜索star量高的Django项目(如wagtail、django-admin-bootstrapped),直接研读源码学习成熟的实现思路,比看文档更直观。
内容的提问来源于stack exchange,提问作者Hongbo
相关产品推荐
相关产品推荐

