Wie kann ich den relativen Pfad verwenden, um lokale Dateien in der Django App zu lesen?

7

Meine Django-App muss einige Textdateien aus dem Dateisystem lesen. Also mache ich ein Verzeichnis in meinem App-Verzeichnis und verwende den relativen Pfad zum Öffnen und Lesen der Datei.

%Vor%

Wenn ich den Server mit manage.py runserver zum Debuggen benutze, ist das in Ordnung. Aber ich betreibe Server mit manage.py runfcgi host=127.0.0.1 port=8081 , Django kann die Datei nicht finden: No such file or directory: 'xml_files/area.xml'

Ich möchte keinen absoluten Pfad verwenden, das bedeutet, ich muss viel Code ändern.

Wie kann ich das Problem lösen, den relativen Pfad zum Öffnen der lokalen Datei zu verwenden?

    
bitcold 01.07.2013, 13:51
quelle

2 Antworten

15

Ich schlage vor, dass Sie absolute path auf eine cleverere Weise verwenden. Deklariere in deinem settings.py etwas wie XMLFILES_FOLDER und lass dein settings.py wie folgt aussehen:

%Vor%

Dies setzt voraus, dass der xml_files -Ordner unter dem Projekt-Stammordner liegt, andernfalls den relativen Pfad vom Projekt-Stammordner zum xml_files

deklarieren %Vor%

Auf diese Weise, wo auch immer in Ihrem Code Sie auf eine Datei innerhalb dieses Verzeichnisses zugreifen möchten, tun Sie einfach:

%Vor%

Dieser Ansatz funktioniert in jedem Betriebssystem und unabhängig davon, wie Sie den Ordner des Projekts ändern, funktioniert es immer noch.

Hoffe, das hilft!

    
Paulo Bu 01.07.2013, 14:39
quelle
7

@Paulo Bu's Antwort ist korrekt, aber veraltet. Moderne settings.py-Dateien haben eine BASE_DIR-Variable, die Sie für dieses Unterfangen verwenden können.

%Vor%

Bedenken Sie, dass der relative Pfad vom Stammordner Ihres Django-Projekts stammt.

    
emisilva 28.01.2016 10:38
quelle

Tags und Links