【NB】编写视图实现功能

[复制链接]
查看645 | 回复0 | 2022-11-14 08:17:35 | 显示全部楼层 |阅读模式


每个视图负责做两件事情之一:返回包含所请求的页面内容的 HttpResponse 对象,或抛出一个异常,如HTTP 404。 修改polls/views.py文件代码如下:

from django.http import HttpResponse

from .models import Question

def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    output = ', '.join([q.question_text for q in latest_question_list])
    return HttpResponse(output)

# Leave the rest of the views (detail, results, vote) unchanged

在这里有一个问题就,通过:网页设计是硬编码在视图中。如果想改变页面的样子,必须编辑这个 Python 代码。因此,让我们使用 Django 模板系统通过创建视图可以使用模板来分开Python 的代码。polls/templates/polls/index.html 将下面的代码:

{% if latest_question_list %}
    <ul>
    {% for question in latest_question_list %}
        <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
现在我们来更新首页视图 polls/views.py使用以下模板(代码):
from django.http import HttpResponse
from django.template import loader

from .models import Question

def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    template = loader.get_template('polls/index.html')
    context = {
        'latest_question_list': latest_question_list,
    }
    return HttpResponse(template.render(context, request))

该代码加载模板调用polls/index.html,然后传递给它的上下文。上下文是一个字典以Python对象映射模板变量名。现在访问URL(http://127.0.0.1:8000/polls/)查看结果 :
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则