Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

401
Visualizações
Cómo escribir Django REST Api sin modelo para enviar un archivo usando Solicitudes

Quiero escribir un método de descanso sin modelo para poder enviar un archivo csv usando el módulo de solicitudes de python. Se debe acceder de forma remota a este archivo csv desde el servidor.

Por ejemplo, inicié sesión en mi proyecto mediante solicitudes y obtuve las cookies y los encabezados para poder pasarlo al siguiente método de solicitudes.

 files = {'file': open('test.csv', 'rb')} response = requests.post(url, files=files, headers=api_headers, cookies=api_cookies)

Entonces esta url debería ser: llamar a ese método de descanso.

vistas.py archivo:

 class FileUploadView(APIView): parser_classes = (FileUploadParser,) def post(self, request, format=None): csvfile = request.data['file'] #reader = csv.DictReader(csvfile) #for r in reader: #print(r) return Response(status=204)

Solo para tener en cuenta: estoy enviando un archivo csv usando el módulo de solicitudes.

¿Alguien puede ayudarme a escribir este método de descanso?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Vista normal de Django

 def myview(request): f = request.FILES['file'] with open('some/folder/name.txt', 'wb+') as destination: #f.name or f.filename (dont know which one)will get filename.So you can replace it name.txt for chunk in f.chunks(): destination.write(chunk) return JsonResponse({"message": "Uploaded!"})

ACTUALIZAR

 # views.py class FileUploadView(views.APIView): parser_classes = (FileUploadParser,) def post(self, request, filename, format=None): file_obj = request.data['file'] # ... # do some stuff with uploaded file # ... return Response(status=200) # urls.py urlpatterns = [ # ... url(r'^upload/(?P<filename>[^/]+)$', FileUploadView.as_view()) ]

Después

 url = 'http://127.0.0.1:8000/upload/test.csv' #filename should be in url files = {'file': open('test.csv', 'rb')} response = requests.post(url, files=files, headers=api_headers, cookies=api_cookies)
about 4 years ago · Santiago Trujillo Relatório

0

Esto haría el truco para ti. http://www.django-rest-framework.org/api-guide/parsers/#fileuploadparser

 # views.py class FileUploadView(views.APIView): parser_classes = (FileUploadParser,) def post(self, request, filename, format=None): file_obj = request.data['file'] # ... # do some stuff with uploaded file # ... return Response(status=204) # urls.py urlpatterns = [ # ... url(r'^upload/(?P<filename>[^/]+)$', FileUploadView.as_view()) ] # test with this curl curl -X POST -S -H -F "file=@something.jpg;type=image/jpg" 127.0.0.1:8000/upload/myfile/
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda