Django project base template

Sure you can. A quick example of a base.html

<!DOCTYPE html>
<html>
    <head>
        <title>My Project</title>
    </head>

    <body>
    {% block content %}{% endblock content %}
    </body>
</html>

And say you have a app called myapp with a view.html page,

{% extends "base.html" %}

{% block content %}
    <h2>Content for My App</h2>
    <p>Stuff etc etc.</p>
{% endblock content %}

Take some time to read the docs for more information


For Django version 3

Some of the answers here are correct, but they do not tell you where to place the files in the directory structure. So I am going to explain the answer a bit.



Yes, you can use {% extends "base.html" %} to extend the base.html file from your project directory.
Important thing to note is where to place the base.html file.

  1. open project_name/project_name/settings.py and find the TEMPLATES array
    and update the 'DIRS' : [] to 'DIRS': [os.path.join(BASE_DIR, 'templates')]
  2. Create a directory at root level named templates. The location of this folder will be project_name/templates
  3. Place all templates here in projects_name/templates that you want to access from all the apps.
    File: project_name/templates/base.html
  4. Extend this base file from any application-specific template, that might be located at project_name/app_name/templates/app_name/template_file.html by using {% extends "base.html" %}.

    {% extends "base.html" %}
    
    {% block content %}
        <h2>Content for My App</h2>
        <p>Stuff etc etc.</p>
    {% endblock content %}
    



Additionally, you can also create project-wide static directory at the same level as template directory by updating STATICFILES_DIRS to STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")] in project_name/project_name/settings.py.


Final Directory Structure looks like -

project_name/
    app_name/
        templates/
            app_name/
                template_file.html

    project_name/
        settings.py

    templates/
        base.html

    static/
        css/
        js/
        img/