Wie man ein eigenes download-Bereich mit django?
Ich würde am Liebsten ein eigenes download-Bereich auf einer website powered by django. Der Benutzer muss angemeldet sein, die entsprechenden Rechte, um in der Lage zu bekommen einige statische Dateien.
Was würden Sie empfehlen für das schreiben dieses feature. Irgendwelche Tipps oder tricks?
Vielen Dank im Voraus
Update:
Vielleicht wegen meiner schlechten Englisch oder meinen Mangel an wissen über diese Architektur (das ist, warum ich Frage) aber meine Frage ist: wie stellen Sie sicher, dass statische Dateien (serviert von den normalen webserver ohne die Notwendigkeit von django) der Zugriff wird gesteuert durch die django-Authentifizierung.
Ich lese die django-docs mehr genau, aber ich kann mich nicht erinnern, von einem out-of-the-box-Lösung für dieses problem.
Update2: Mein host-provider erlaubt nur FastCgi.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, auf der Suche fand ich diese Diskussion thread.
Gab es drei Dinge gesagt, die Sie interessieren könnten.
Da ist zunächst die mod_python Methode
Dann gibt es die mod_wsgi Methode
Beide scheinen nicht alle so toll.
Besser ist die X-Sendfile-header, die nicht ganz standard, aber funktioniert zumindest innerhalb von apache und lighttpd.
kibbitzing von hier, haben wir das folgende.
und das sollte ziemlich genau das, was Sie wollen. Nur stellen Sie sicher, dass Sie schalten auf X-Sendfile-Unterstützung in was auch immer Sie geschehen, zu verwenden.
Des XSendfile-scheint der richtige Ansatz, aber Es sieht etwas Komplex einzurichten. Ich habe beschlossen, zu verwenden, eine einfachere Möglichkeit.
Basierend auf emeryc Antwort und django snippets http://www.djangosnippets.org/snippets/365/, ich habe geschrieben das folgenden code, und es scheint das zu machen, was ich will:
Es gibt Tonnen von tutorials auf, wie Sie zum aktivieren der Authentifizierung in Django. Brauchen Sie Hilfe mit, dass? Falls ja, starten Sie hier.
Der nächste Schritt ist, eine Ansicht zu erstellen, die Listen Ihrer Dateien. Also das tun, das ist alles basic Django. Wenn Sie Probleme mit diesem Schritt gehen Sie zurück und gehen Sie durch die Django tutorial. Sie bekommen dieses.
Schließlich verweisen Sie noch einmal auf den ersten link (hier wieder: Authentifizierung docs) und werfen Sie einen Blick auf die LOGIN_REQUIRED Dekorateur. Schützen Sie Ihre Sicht mit dieser Dekorator.
Dies ist alles ziemlich basic Django Zeug. Wenn Sie dies getan haben und haben eine bestimmten Frage, es hier posten. Aber du legst eine ziemlich offene Frage, auf SO und dass ist nicht ein guter Weg, um Hilfe zu erhalten.