# 创建可读取CSV并生成HTML表格的小型Web项目


背景介绍

随着数据处理的日益重要,Web项目需要支持读取CSV文件并生成HTML表格的功能。本项目的核心是使用Python实现文件读取、数据处理及HTML表格生成,采用本地开发模式,无需依赖第三方库。

思路分析

  1. 文件读取与数据处理
    • 使用csv.reader读取CSV文件,处理每一行数据。
    • 将读取的数据存储为结构化的对象,便于后续生成HTML表格。
  2. HTML表格生成
    • 基于Django的模板系统,构建HTML表格元素。
    • 使用Django的<table>标签直接渲染数据,无需额外处理。
  3. 本地运行
    • 通过Django的开发服务器,运行项目,无需部署到服务器。

代码实现

Django实现

# data_project/views.py

from django.shortcuts import render

from csv import reader

def read_csv_and_generate_table(request):
    file_path = request.path.split("/")[1]  # 读取文件路径

    with open(file_path, 'r', encoding='utf-8') as f:
        reader_file = csv.reader(f)
        data = [row for row in reader_file]

    html_template = """
    <html>
    <head>
        <title>CSV Data</title>
    </head>
    <body>
        <h1>数据展示</h1>
        <table border="1">
        <tr>
            <th>Name</th>
            <th>Age</th>
        </tr>
        {% for row in data %}
            <tr>
                <td>{{ row[0] }}</td>
                <td>{{ row[1] }}</td>
            </tr>
        {% endfor %}
        </table>
    </body>
    </html>
    """

    return render(request, 'table.html', context={'data': data})

Flask实现

from flask import Flask, request

app = Flask(__name__)

def read_csv_and_generate_table():
    file_path = request.args.get('file_path') or 'data.csv'

    with open(file_path, 'r', encoding='utf-8') as f:
        reader_file = csv.reader(f)
        data = [row for row in reader_file]

    html_template = """
    <html>
    <head>
        <title>CSV Data</title>
    </head>
    <body>
        <h1>数据展示</h1>
        <table border="1">
        <tr>
            <th>Name</th>
            <th>Age</th>
        </tr>
        {% for row in data %}
            <tr>
                <td>{{ row[0] }}</td>
                <td>{{ row[1] }}</td>
            </tr>
        {% endfor %}
        </table>
    </body>
    </html>
    """

    return render_template('table.html', data=data)

@app.route('/csv-table/<file_path>')
def csv_table(file_path):
    return render_template('table.html', data=generate_data_from_csv(file_path))

def generate_data_from_csv(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        reader = csv.reader(f)
        return [row for row in reader]

总结

本项目通过Python实现CSV文件读取与数据处理,生成HTML表格,支持本地运行。核心技术包括:

  • 使用csv.reader处理CSV数据。
  • 使用Django模板引擎生成HTML表格。
  • 项目本地可运行,无需依赖第三方库。

通过上述代码示例,可以清晰地看到数据处理和HTML生成的核心逻辑,同时体现了Python在数据处理和Web开发中的技术价值。