Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

389
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!