Pandas和Django的示例Demo

以下是一个结合Pandas和Django的示例Demo,展示如何在Django项目中读取、处理和展示Pandas数据。

Pandas和Django的示例Demo

前置条件:

安装python

基础设置

确保已安装Django和Pandas:

复制代码
pip install django pandas

Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.8.1 django-5.2.2 sqlparse-0.5.3

创建一个Django项目和应用:

复制代码
django-admin startproject pandas_django_demo
cd pandas_django_demo
python manage.py startapp data_app

建立后django会生成下面目录

模型与数据处理

在data_app/models.py中定义一个简单模型:

复制代码
from django.db import models

class DataRecord(models.Model):
    name = models.CharField(max_length=100)
    value = models.FloatField()
    timestamp = models.DateTimeField(auto_now_add=True)

在data_app/views.py中使用Pandas处理数据:

复制代码
import pandas as pd
from django.shortcuts import render
from .models import DataRecord

def data_view(request):
    # 从数据库获取数据并转为DataFrame
    queryset = DataRecord.objects.all().values()
    df = pd.DataFrame.from_records(queryset)

    # 示例操作:计算统计值
    stats = {
        'mean': df['value'].mean(),
        'max': df['value'].max(),
        'min': df['value'].min()
    }

    # 将DataFrame转为HTML表格
    html_table = df.to_html(classes='table table-striped', index=False)

    return render(request, 'data_display.html', {
        'stats': stats,
        'html_table': html_table
    })

模板展示

创建templates/data_app/data_display.html:

复制代码
<!DOCTYPE html>
<html>
<head>
    <title>Pandas + Django Demo</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container mt-4">
        <h3>数据统计</h3>
        <ul>
            <li>平均值: {{ stats.mean }}</li>
            <li>最大值: {{ stats.max }}</li>
            <li>最小值: {{ stats.min }}</li>
        </ul>

        <h3 class="mt-4">原始数据</h3>
        {{ html_table|safe }}
    </div>
</body>
</html>

URL配置

在项目urls.py中添加路由:

复制代码
from django.contrib import admin
from django.urls import path
from data_app import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.data_view, name='data_view'),
]

或者用手工得方式添加测试记录

运行步骤

  1. 迁移数据库:

    python manage.py makemigrations
    python manage.py migrate

创建admin用户

python mange.py createsuperuser

输入admin,输入admin@qq.com,输入密码admin123

后台登录输入admin/admin123

  1. 启动开发服务器:

    python manage.py runserver

  2. 访问http://127.0.0.1:8000查看结果。

数据导入示例

在Django shell中生成测试数据:

复制代码
import random
from data_app.models import DataRecord
from django.utils import timezone

for i in range(10):
    DataRecord.objects.create(
        name=f"Item_{i}",
        value=random.uniform(10, 100),
        timestamp=timezone.now()
    )

或者手工输入dataRecord得记录

运行结果

python manage.py runserver

复制代码
June 05, 2025 - 20:05:00
Django version 5.2.2, using settings 'pandas_django_demo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

WARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.
For more information on production servers see: https://docs.djangoproject.com/en/5.2/howto/deployment/
[05/Jun/2025 20:05:07] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:08] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:09] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:09] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:09] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:09] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:10] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:10] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:10] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:10] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:10] "GET /data_app/ HTTP/1.1" 200 460
[05/Jun/2025 20:05:16] "GET / HTTP/1.1" 200 3493

打开浏览器

相关推荐
海绵宝宝转agent5 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭5 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT5 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
2601_962071576 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境7 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路7 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师7 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师7 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
Zootopia6267 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
Y3815326627 小时前
搜索 API 延迟优化:并发数、超时与超时的真实代价
python·搜索引擎