详细介绍:Pandas和Django的示例Demo

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

Pandas和Django的示例Demo

前置条件:

安装python

基础设置

确保已安装Django和Pandas:

pip install django pandas
Installing collected packages: sqlparse, asgiref, djangoSuccessfully installed asgiref-3.8.1 django-5.2.2 sqlparse-0.5.3

创建一个Django项目和应用:

django-admin startproject pandas_django_democd pandas_django_demopython 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 pdfrom django.shortcuts import renderfrom .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

    Pandas + Django Demo                数据统计                    平均值: {{ stats.mean }}            最大值: {{ stats.max }}            最小值: {{ stats.min }}                 原始数据        {{ html_table|safe }}

URL配置

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

from django.contrib import adminfrom django.urls import pathfrom data_app import views urlpatterns = [    path('admin/', admin.site.urls),    path('', views.data_view, name='data_view'),]

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

运行步骤

  1. 迁移数据库:
python manage.py makemigrationspython manage.py migrate

创建admin用户

python mange.py createsuperuser

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

后台登录输入admin/admin123

  1. 启动开发服务器:
python manage.py runserver

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

数据导入示例

在Django shell中生成测试数据:

import randomfrom data_app.models import DataRecordfrom 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:00Django 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

打开浏览器

posted @ 2025-07-22 09:58  yfceshi  阅读(25)  评论(0)    收藏  举报