django project root self discovery

前端 未结 4 847
灰色年华
灰色年华 2020-12-03 09:45

Ok so I recall there are some commands you could put in the settings.py file so that basically when you move your django project to another directory it won\'t

相关标签:
4条回答
  • 2020-12-03 10:15

    Django 1.8 already includes the project root directory as BASE_DIR:

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    

    And you can use it in your app by importing settings:

    from django.conf import settings
    ...
    ...
    print(settings.BASE_DIR)
    
    0 讨论(0)
  • 2020-12-03 10:15
    PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))
    0 讨论(0)
  • 2020-12-03 10:19

    Grab the __file__ global, and use the various functions in os.path on it.

    import os.path
    SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
    
    0 讨论(0)
  • 2020-12-03 10:28

    The architecture of a project in Django

    • root/

      • app1/
      • app2/
      • ...
      • main/
        • settings.py

    Inside settings.py:

    SITE_ROOT = os.path.dirname(os.path.realpath(__file__)) -> gives the path of the file settings.py: root/main/. This is NOT THE ROOT OF THE PROJECT

    PROJECT_PATH = os.path.abspath(os.path.dirname(__name__)) -> gives the root of the project: root/. This is THE ROOT OF THE PROJECT.

    0 讨论(0)
提交回复
热议问题