[PYTHON] Je suis resté coincé à faire Django 1.4, donc j'ai écrit un "mémo" sur le chemin absolu et le chemin relatif

Contexte

J'étudiais pour apprendre Django, mais j'ai trébuché sur le chemin, alors j'ai pensé que c'était peut-être ce problème et je l'ai étudié.

relative path Comment appeler un fichier en fonction de votre répertoire actuel. Écrivez un chemin en fonction du paysage que vous voyez d'où vous êtes

Puisque je pratique Django, je vais l'expliquer en référence à ce qui suit. Le répertoire actuel ressemble à ce qui suit.

/Users/Nom d'utilisateur/Projects/python/dj/mysite

C'est la structure des fichiers du répertoire mysite.

.


├── books
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── admin.py
│   ├── admin.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── tests.py
│   ├── views.py
│   └── views.pyc
├── manage.py
├── mydb

Maintenant, je suis à l'endroit d'origine (répertoire mysite). Si vous appelez admin.py dans des livres avec un chemin relatif,

books/admin.py

Simplement fais-le. Est-ce facile?

absolute path Écrivez le chemin en fonction de la vue de la racine de l'ordinateur. Appelez où que vous soyez.

En utilisant le même exemple que ci-dessus,

/Users/Nom d'utilisateur/Projects/python/dj/mysite

Bref, ouvrez le terminal

pwd

Il semble que je vais entrer dans le chemin qui est sorti.

Il y a encore un mystère

Après tout, même si j'enquêtais là-dessus et essayais les deux, je ne pourrais pas résoudre le mystère de l'original. Même si je suis allé dans le répertoire où le modèle existe et que je l'ai appelé avec le nom correct

template does not exist

C'était difficile de continuer à se faire dire.

Après avoir enquêté pendant deux jours, j'étais inquiet

import os

PATH_PROJECT = os.path.realpath(os.path.dirname(__file__))

Et à TEMPLATE_DIR

PATH_PROJECT + '/templates/'

J'ai réussi à le résoudre. C'est encore un mystère.

Postscript

Je pensais que c'était résolu! Il semble que la manière d'écrire le point de référence du chemin absolu soit différente, donc si vous appelez ** pwd ** avec le shell et que vous le frappez, mettez le chemin qui est sorti dans TEMPLATE_DIR et ce sera un grand succès!

Il y a des choses qui peuvent être résumées.

Recommended Posts

Je suis resté coincé à faire Django 1.4, donc j'ai écrit un "mémo" sur le chemin absolu et le chemin relatif
Je suis resté bloqué en essayant de spécifier un chemin relatif avec relative_to () en python
Je suis resté coincé alors je l'ai examiné
J'ai essayé d'utiliser pipenv, alors prenez note
Un mémo que j'ai écrit un tri rapide en Python
Un mémo sur la création d'une application Django (Python) avec Docker
J'ai écrit python3.4 dans .envrc avec direnv et je l'ai autorisé, mais j'ai eu une erreur de syntaxe