How to get the project root of django project

Question:

I am using django 3

I want to get root directory of project.

I googled around and found that I should use this

SITE_ROOT = os.path.dirname(os.path.realpath(__file__)) in settings.py though,

I can’t figure out how to use SITE_ROOT in other script.

Maybe this is quite silly and newbee question though,,
ーーーーーーーーーーーーーー

thanks to @neverwalkaloner

It works.

from django.conf import settings
print(settings.SITE_ROOT)

but it does not work on apache with wsgi.py. show / only.

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.myconf.local')

application = get_wsgi_application()

manage.py

import os
import sys


def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.myconf.local')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()
Asked By: whitebear

||

Answers:

You can access django settings using django.conf module. In any django file you can do something like this:

from django.conf import settings
print(settings.SITE_ROOT)

From django docs:

Also note that your code should not import from either global_settings
or your own settings file. django.conf.settings abstracts the concepts
of default settings and site-specific settings; it presents a single
interface. It also decouples the code that uses settings from the
location of your settings.

Answered By: neverwalkaloner

You should import your settings module and use SITE_ROOT as below wherever you need it in your app as below :

from django.conf import settings
...
settings.SITE_ROOT
Answered By: Theo Godard

everyone is answering how to find the sites root when he asked about the projects

Answered By: ccvCoding
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.