2017-01-20 4 views
0

Ich fand mich in einer Situation, in der ein Client fragte, ob wir die Dateien in der Web App liefern können, ohne ihn hochladen zu müssen. Stattdessen möchte er die Dateien in einem lokalen Verzeichnis löschen. Sagen wir in '/ Desktop/myfiles /'.Abrufen von Dateien aus dem lokalen Verzeichnis in Django

Frage 1 = Ist es möglich, alle Dateien aus einem lokalen Verzeichnis wiederherzustellen? Frage # 2 = Wenn ich die Dateien aus dem lokalen Verzeichnis abrufen kann, wie kann ich den Dateipfad speichern, um ihn in einem FileField-Feld in Mymodel zu speichern? Also wenn ich Mymodel.objects.all() schreibe bekomme ich alle Dateien !!

PS: Natürlich kenne ich die Dateinamen nicht im Voraus. Das wäre ein Bonus!

Irgendwelche Ideen?

Antwort

0

Ich habe es geschafft, die Dateien aus dem lokalen Verzeichnis mit Sql-Skript mit LOAD LOCAL INFILE ziehen und aktualisieren Sie die Felder nach dem Einfügen. Um den richtigen Dateipfad zu erhalten, habe ich CONCAT benutzt.
Es funktioniert wie ein Charme und kann tatsächlich sehr nützlich für anspruchsvolle Web-Anwendungen sein.

0

gesetzt Vielleicht ein Verzeichnis zusammen die statische Inhalte, dann einen FTP-Benutzer machen den Zugang zu bekommen Dateien in diesem Verzeichnis zu laden, sie alle

0

ist das eine seltsame Anforderung ist :-) Ich persönlich würde versuchen, nein zu sagen und Implementieren Sie stattdessen etwas mit dem Fineuploader, mit dem Sie Drag & Drop für mehrere Dateien unterstützen können. Aber scheint das ist nicht das OP:

Ich würde als Seite Cron Job oder Worker mit einer Verwaltungsfunktion ('Python manage.py your_function') oder die Implementierung von Selery im Grunde nach allen Dateien und für jede Datei nicht bereits auf der Suche Datenbank, erstellen Sie einen neuen Datensatz dafür. Um die Dinge einfacher zu machen, möchten Sie vielleicht, dass diese Funktion auch die Datei an Ihren MEDIA-Speicherort verschiebt (anstatt das ursprüngliche Verzeichnis zum MEDIA zu machen).

Grundsätzlich können Sie mit Django-Management oder Django-Sellerie-Funktionen alle fünf Minuten (oder jede Minute) überprüfen und das Äquivalent eines Benutzer-Uploads ausführen.

Es gibt nicht genug Beschreibung Ihres Codes für mich, um Beispielkabel zu schreiben, aber hoffentlich bekommen Sie die Idee.

+0

Sellerie kenne ich überhaupt nicht !! Also sprichst du jetzt chinesisch zu mir;). Ich weiß, dass es eine seltsame Anforderung ist. Ich lehne mich auf "Nein" ab, aber ich musste meine Forschung zuerst machen. Danke für die Information! –

+0

https://realpython.com/blog/python/asynchronous-tasks-with-django-and-sellery/ – dkarchmer

Verwandte Themen