Heim > Backend-Entwicklung > Python-Tutorial > Absolute vs. relative Pfade in Flask Blueprints: Wie referenziere ich Verzeichnisse richtig?

Absolute vs. relative Pfade in Flask Blueprints: Wie referenziere ich Verzeichnisse richtig?

Susan Sarandon
Freigeben: 2024-12-26 17:41:14
Original
375 Leute haben es durchsucht

Absolute vs. Relative Paths in Flask Blueprints: How to Correctly Reference Directories?

Referenzieren von Verzeichnissen in Flask: Absolute vs. relative Pfade

In Flask-Anwendungen beim Zugriff auf Verzeichnisse aus Ansichten, die sich in Blueprints außerhalb des Stammverzeichnisses befinden Verzeichnis muss der Pfad absolut sein. Dies liegt daran, dass relative Pfade relativ zum aktuellen Arbeitsverzeichnis interpretiert werden, nicht zum Verzeichnis, in dem sich der Code befindet.

Zur Veranschaulichung nehmen wir an, Sie haben eine Flask-App mit der folgenden Struktur:

project/
    app/
        __init__.py
        views.py
    blueprints/
        __init__.py
        blueprint.py
    data/
        nltk_data
Nach dem Login kopieren

In der Ansicht des Blueprints schlägt der folgende Code fehl:

nltk.data.path.append('../nltk_data/')
Nach dem Login kopieren

Der Pfad ist relativ zum Verzeichnis des Blueprints, aber nltk.data erwartet einen absoluten Pfad. Die richtige Art, den Pfad anzugeben, ist die Verwendung der absoluten Form:

nltk.data.path.append('/home/username/myapp/app/nltk_data/')
Nach dem Login kopieren

Alternativ können Sie das root_path-Attribut der App oder des Blueprints verwenden, um einen absoluten Pfad zu erstellen, etwa so:

resource_path = os.path.join(app.root_path, 'nltk_data')
Nach dem Login kopieren

Dies wird empfohlen, da es die Notwendigkeit vermeidet, Pfade fest zu codieren, wodurch Ihr Code portabler wird.

Beachten Sie, dass das Anhängen im Allgemeinen nicht erforderlich ist Das Verzeichnis wird bei jedem Aufruf einer Ansicht in nltk.data verschoben. Normalerweise können Sie den Datenpfad einmalig beim Erstellen der App einrichten. Konkrete Anweisungen dazu finden Sie in der Dokumentation von nltk.

Das obige ist der detaillierte Inhalt vonAbsolute vs. relative Pfade in Flask Blueprints: Wie referenziere ich Verzeichnisse richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage