Maison > développement back-end > Tutoriel Python > Comment référencer correctement les répertoires non absolus dans les applications Flask ?

Comment référencer correctement les répertoires non absolus dans les applications Flask ?

DDD
Libérer: 2024-12-01 17:56:10
original
700 Les gens l'ont consulté

How to Correctly Reference Non-Absolute Directories in Flask Applications?

Référencement de répertoires non absolus dans les applications Flask

Dans une application Flask, les tentatives de référence à un répertoire à l'aide d'un chemin relatif peuvent échouer, sauf si le chemin est absolu. Cette anomalie survient car, en Python, l'emplacement du code et le répertoire de travail actuel sont des entités distinctes. Par conséquent, les chemins relatifs sont interprétés en fonction du répertoire de travail actuel plutôt que de l'emplacement du fichier de code.

Dans l'exemple fourni, le développeur tente de référencer le répertoire de données à l'aide d'un chemin relatif :

nltk.data.path.append('../nltk_data/')
Copier après la connexion

Cependant, cette approche s’avère infructueuse. La solution réside dans l'utilisation du chemin absolu :

nltk.data.path.append('/home/username/myapp/app/nltk_data/')
Copier après la connexion

Pour référencer correctement le répertoire de données, un chemin relatif vers le répertoire peut être joint à l'attribut de chemin racine de l'application, garantissant ainsi un chemin absolu quel que soit le chemin d'accès actuel. annuaire. Ceci est réalisé à l'aide du code suivant :

resource_path = os.path.join(app.root_path, 'nltk_data')
Copier après la connexion

De plus, il est recommandé de configurer le chemin des données une fois lors de la création de l'application plutôt que de le mettre à jour de manière répétée à chaque appel de vue.

En conclusion, lorsque faire référence à un répertoire dans une application Flask, utiliser des chemins absolus ou combiner des chemins relatifs avec l'attribut de chemin racine de l'application garantit un référencement réussi, éliminant toute confusion provenant de la distinction entre l'emplacement du code et le travail actuel répertoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal