复习django项目三——视图显示模板templates

本文介绍如何在Django项目中配置模板引擎、展示数据到网页并管理静态文件,包括设置模板路径、加载模板、渲染上下文以及定义静态文件目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在项目根目录创建templates文件夹,并在setting里设置模板路径DIR

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

2.打开文件:mysite/templates/myapp/index.html

{% if user_list %}
    <ul>
    {% for user in user_list %}
        <li><a href="/myapp/{{ user.id }}/">{{ user.phone }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No user are available.</p>
{% endif %}

3.打开视图myapp/views.py来导入模板
方法一

from django.http import HttpResponse
from django.template import loader
from .models import User
def index(request):
    user_list = User.objects.order_by('name')  #按name排序
    template = loader.get_template('myapp/index.html')
    context = {
        'user_list': user_list,
    }
    return HttpResponse(template.render(context, request))

方法二

from django.shortcuts import render
from .models import User
def index(request):
    user_list = User.objects.order_by('name')
    context = {'user_list': user_list}
    return render(request, 'myapp/index.html', context)

4.管理静态文件
(1)在settings 文件中定义静态内容

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

(2)在项目根目录下创建static目录,再创建当前应用名称的目录

mysite/static/myapp/

(3)在模板中可以使用硬编码

<img src="/static/myapp/myexample.jpg" alt="My image"/>

在模板中可以使用static编码

{% load static from staticfiles %}
<img src="{% static 'myapp/myexample.jpg' %}" alt="My image"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值