Django templates folders

后端 未结 4 473
遥遥无期
遥遥无期 2020-12-02 13:39

I\'m experimenting with Django, and figuring out how to set urls.py, and how the URLs work. I\'ve configured urls.py in the root of the pro

4条回答
  •  無奈伤痛
    2020-12-02 14:09

    Did you set TEMPLATE_DIRS in your settings.py? Check and make sure it is set up correctly with absolute paths. This is how I make sure it is properly set:

    settings.py

    PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
    
    TEMPLATE_DIRS = (
        # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
        # Always use forward slashes, even on Windows.
        # Don't forget to use absolute paths, not relative paths.
        os.path.join(PROJECT_ROOT, 'templates').replace('\\','/'),
    )
    
    # List of callables that know how to import templates from various sources.
    TEMPLATE_LOADERS = (
        'django.template.loaders.filesystem.Loader',
        'django.template.loaders.app_directories.Loader',
    #     'django.template.loaders.eggs.Loader',
    )
    

    This way, I have a templates folder in my project root that is used for non-app templates and each app has a templates/appname folder inside the app itself.

    If you want to use a template from the root template folder, you just give the name of the template like 'base.html' and if you want to use an app template, you use 'appname/base.html'

    Folder structure:

    project/
      appname/
        templates/ 
          appname/  <-- another folder with app name so 'appname/base.html' is from here
            base.html
        views.py
        ...
    
      templates/    <-- root template folder so 'base.html' is from here
        base.html
    
      settings.py
      views.py
      ...
    

提交回复
热议问题