Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

575
Vistas
django carga el archivo, procesa pandas y descarga como csv

Creé una aplicación que permite al usuario cargar un archivo. Por otro lado, tengo un script de python que toma un archivo de texto, lo convierte a CSV y hace pandas. Este script funciona perfectamente cuando se ejecuta en la terminal. Ahora quiero aplicar ese script de python a la carga de archivos en Django y mostrar ese archivo en httpResponse y ponerlo a disposición para descargarlo.

secuencia de comandos de pitón

 import csv import pandas as pd df = pd.read_csv('raw_df.txt', delimiter = '\t' , usecols=['Sample','Cohort','Metabolite Name','Intensity']) df = df[df['Cohort'].str.contains("std")] df = df.groupby(['Cohort', 'Metabolite Name'])['Intensity'].sum().reset_index() df = df[['Cohort','Intensity']] c = 'Cohort' s = df.set_index([c, df.groupby(c).cumcount() + 2]).Intensity df = s.unstack().add_prefix('Intensity').reset_index() df.to_csv() print df;

vistas.py

 from django.shortcuts import render, redirect from django.conf import settings from django.core.files.storage import FileSystemStorage from uploads.core.models import Document from uploads.core.forms import DocumentForm def home(request): documents = Document.objects.all() return render(request, 'core/home.html', { 'documents': documents }) def model_form_upload(request): if request.method == 'POST': form = DocumentForm(request.POST, request.FILES) if form.is_valid(): form.save() return redirect('home') else: form = DocumentForm() return render(request, 'core/model_form_upload.html', { 'form': form })

Modelos.py

 class Document(models.Model): document = models.FileField(upload_to='documents/')

página de carga de plantillas

 {% extends 'base.html' %} {% block content %} <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form.as_p }} <button type="submit">Upload</button> </form> <p><a href="{% url 'home' %}">Return to home</a></p> {% endblock %}
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  1. Envuelva su procesamiento de archivos en un método:

     import csv import pandas as pd def process_file(file_handle): df = pd.read_csv(file_handle, delimiter = '\t' , usecols['Sample','Cohort','Metabolite Name','Intensity']) df = df[df['Cohort'].str.contains("std")] df = df.groupby(['Cohort', 'Metabolite Name'])['Intensity'].sum().reset_index() df = df[['Cohort','Intensity']] c = 'Cohort' s = df.set_index([c, df.groupby(c).cumcount() + 2]).Intensity df = s.unstack().add_prefix('Intensity').reset_index() return df.to_csv()
  2. en tu opinión:

     ... if form.is_valid(): document = form.save() # call to the new method csv = process_file(document.document) response = HttpResponse(csv, content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=result.csv' return response ...
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda