You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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')):统计每个分组的记录数,命名为count
  • order_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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:27:27