老师点击新闻,进入展示出新闻列表
{% extends 'base.html' %}
{% block title %}
<title>新闻列表</title>
{% endblock %}
{% block container %}
<!--主体-->
<header class="wy-header">
<div class="wy-header-icon-back"><span></span></div>
<div class="wy-header-title">新闻列表</div>
</header>
<div class="weui-content">
<div class="weui-cells wy-news-list">
{% for item in page_data.object_list %}
<a class="weui-cell weui-cell_access"
href="{% url 'system:news_detail' item.pk %}">
<div class="weui-cell__bd">
<p>{{ item.title }}</p>
</div>
<div class="weui-cell__ft"></div>
</a>
{% endfor %}
</div>
<div class="weui-footer">
<p class="weui-footer__links">
{% if page_data.has_previous %}
<a class="weui-footer__link" href="{% url 'system:news_list' %}?page={{ page_data.previous_page_number }}">上一页</a>
{% else %}
<a class="weui-footer__link" href="javascript:;" onclick="window.alert('没有上一页了')">上一页</a>
{% endif %}
{% if page_data.has_next %}
<a class="weui-footer__link" href="{% url 'system:news_list' %}?page={{ page_data.next_page_number }}">下一页</a>
{% else %}
<a class="weui-footer__link" href="javascript:;" onclick="window.alert('没有下一页了')">下一页</a>
{% endif %}
</p>
<p class="weui-footer__text">当前第{{ page_data.number }}页,总共有{{ page_data.paginator.num_pages }}页</p>
</div>
</div>
{% endblock %}
{% block footer %}
<script type="text/javascript" src="js/jquery.Spinner.js"></script>
{% endblock %}
from django.core.paginator import Paginator
from django.db.models import F
from django.shortcuts import render, get_object_or_404
from system.models import News
# Create your views here.
from utils import contans
def news_list(request,template_name='news_list.html'):
"""新闻列表"""
#当前页码
page = request.GET.get('page',1)
page_size = 20#每页放20条数据
news = News.objects.filter(types=contans.NEWS_TYPE_NEW,
is_valid=True)
pagainator = Paginator(news,page_size)
page_data = pagainator.page(page)
return render(request,template_name,{
'page_data':page_data
})
def news_detail(request,pk,template_name='news_info.html'):
"""新闻详情"""
news_obj = get_object_or_404(News,pk=pk,is_valid=True)
#每查看一次,浏览次数+1
news_obj.view_count = F('view_count') + 1
news_obj.save()
#重新从数据库中取数据
news_obj.refresh_from_db()
return render(request,template_name,{
'news_obj':news_obj
})
正在回答 回答被采纳积分+1
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星