Как создать вывод CSV в Flask?

навигации в Flask Программирование и разработка

В этой статье мы увидим, как создать вывод CSV с помощью Flask. Веб-платформы Python и Flask предоставляют мощные инструменты для создания отчетов, экспорта данных и создания каталогов. Мы увидим, как генерировать оба файла CSV с помощью Python и Flask.

Создание CSV-файлов в Python Flask

Шаг 1: Установка

Мы используем Flask для создания вывода CSV. Пожалуйста, обратитесь к: — Установите Flask и установите Python для правильной установки.

Шаг 2. Создайте виртуальную среду

На этом этапе мы сначала создадим виртуальную среду для нашего проекта.

На этом этапе мы сначала создадим виртуа

Шаг 3: Создайте папки

Теперь создадим папку в формате, указанном на рисунке ниже. Мы создадим статическую папку и папку шаблона, а внутри папки шаблона создадим файл index.html. Мы также создадим файл app.py, в котором напишем наш код Python.

Шаг 4. Напишите код Python

На этом этапе мы напишем нашу логику Flask в виде кода Python. Вставьте этот код в файл app.py и сохраните файл. В этом коде мы создали три маршрута: один для рендеринга шаблонов, один для генерации данных и третий для загрузки данных в виде файла CSV.

Python3

from flask import Flask, render_template, request, Response, send_file
import csv
app = Flask(__name__)
# Sample data for demonstration
users = []
@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "POST":
        name = request.form.get("name")
        email = request.form.get("email")
        users.append({"name": name, "email": email})
    
    return render_template("index.html", csv_data=users)
@app.route("/generate_csv")
def generate_csv():
    if len(users) == 0:
        return "No data to generate CSV."
    # Create a CSV string from the user data
    csv_data = "Name,Email\n"
    for user in users:
        csv_data += f"{user['name']},{user['email']}\n"
    return render_template("index.html", csv_data=csv_data)
@app.route("/download_csv")
def download_csv():
    if len(users) == 0:
        return "No data to download."
    # Create a CSV string from the user data
    csv_data = "Name,Email\n"
    for user in users:
        csv_data += f"{user['name']},{user['email']}\n"
    # Create a temporary CSV file and serve it for download
    with open("users.csv", "w") as csv_file:
        csv_file.write(csv_data)
    return send_file("users.csv", as_attachment=True, download_name="users.csv")
@app.route("/download_csv_direct")
def download_csv_direct():
    if len(users) == 0:
        return "No data to download."
    # Create a CSV string from the user data
    csv_data = "Name,Email\n"
    for user in users:
        csv_data += f"{user['name']},{user['email']}\n"
    # Create a direct download response with the CSV data and appropriate headers
    response = Response(csv_data, content_type="text/csv")
    response.headers["Content-Disposition"] = "attachment; filename=users.csv"
    return response
if __name__ == "__main__":
    app.run(debug=True)

Шаг 5. Напишите HTML-код

На этом этапе мы создадим файл index.html и вставим в него этот код. В этом коде мы создали HTML-форму, и когда человек пишет свои данные. Он сохраняется в файле CSV.

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSV Generator</title>
</head>
<body>
    <h1>CSV Generator</h1>
    <form method="POST" action="/">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name" required><br><br>
        
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required><br><br>
        <input type="submit" value="Generate CSV">
    </form>
    {% if csv_data %}
    <a href="/download_csv">
        <button>Download CSV</button>
    </a>
    {% endif %}
    {% if csv_data %}
    <div>
        <h2>Generated CSV:</h2>
        <pre>{{ csv_data }}</pre>
    </div>
    {% endif %}
</body>
</html>

 

Шаг 6: Запустите файл

На этом этапе просто запустите файл, и вы увидите эту форму. Просто заполните эту форму и нажмите «Создать данные». Данные будут сгенерированы, а затем нажмите кнопку «Загрузить CSV», чтобы загрузить файл в формате CSV.

На этом этапе просто запустите файл, и в

Формат данных в CSV

Откройте скачанный файл и вы увидите данные в таком формате.

Откройте скачанный файл и вы уви

Читайте также:  Core PHP или Laravel: что лучше
Оцените статью
bestprogrammer.ru
Добавить комментарий