码迷,mamicode.com
首页 > 其他好文 > 详细

Django--之影片展示

时间:2018-04-03 22:02:52      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:number   越界   install   body   des   clu   session   计算   type   

展示影片


准备工作:

  • 打开SQLyang 导入准备好的sql脚本

第一步:创建一个新的应用 python manage.py startapp movie
第二步:逆向生成:

  • python manage.py inspectdb>movie/models.py
  • 会生成很多类 把movie类留下 其余没用的都删掉

第三步:创建urls 进行配置

    #coding=utf-8

from django.conf.urls import url
import views
urlpatterns=[
    url(r^$, views.index_view),
    url(r^page/$, views.movie_view),
]

并且在父路由中添加:

url(r^movie/,include(movie.urls)),

第四步:配置视图函数 :  配置好urls 后直接使用alt+enter 自动创建 movie_view函数

def index_view(request):
    # 接收参数--当前页码数
    num = request.GET.get(num,1)
    num = int(num)
    # 查询movie表中所有数据
    mvs = page(num)

    pre_page = num-1
    next_page = num+1
    return render(request,index.html,{movies:mvs,pre_page:pre_page,next_page:next_page}

第五步:创建index.html (重要要步骤)

{% for movie in movies %}

               <li>
                     <a href="{{ movie.mlink }}"><img src="{{ movie.mimg }}"/></a>
                     <h1 class="h1">{{ movie.mname }}</h1>
                     <span class="tip">{{ movie.mdesc }}</span>
                 </li>

           {% endfor %}

        </ul>
    </div>
    <div id="pagebar">
        <a href="/movie/?num={{ pre_page }}">上一页</a>
        <a href="/movie/?num={{ next_page }}">下一页</a>
//{{ }}双大括号 里面的内容是把它修改成动态的

第六步:配置setting

INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    student,
    movie,
]
//添加最后一个movie

第七步:在浏览器中输入  http://127.0.0.1:8000/movie/

进一步优化展示页面:

  • 分页:
  • 第一步:在views配置
def page(num,size=20):
    num = int(num)
#     判断当前页码是否越界
    if num < 1:
        num = 1
# 计算总页数
    total_records = Movie.objects.count()
    total_pages = int(math.ceil(total_records*1.0/size))

    if num>total_pages:
        num=total_pages
# 查询当前所有数据
    mvs = Movie.objects.all()[((num-1)*size):(num*size)]
    return mvs

def index_view(request):
    # 接收参数--当前页码数
    num = request.GET.get(num,1)
    num = int(num)
    # 查询movie表中所有数据
    mvs = page(num)

    pre_page = num-1
    next_page = num+1
    return render(request,index.html,{movies:mvs,pre_page:pre_page,next_page:next_page})

 

  •   第二步:配创建的index.html文件中配置

技术分享图片

  • 第三步:浏览器中输入 :http://127.0.0.1:8000/movie/page/

继续优化展示页面下面显示页数:

 {% for movie in t_pre_page %}
               <li>
                     <a href="{{ movie.mlink }}"><img src="{{ movie.mimg }}"/></a>
                     <h1 class="h1">{{ movie.mname }}</h1>
                     <span class="tip">{{ movie.mdesc }}</span>
                 </li>

           {% endfor %}

        </ul>
    </div>
    <div id="pagebar">
        {% if t_pre_page.has_previous%}
            <a href="/movie/page/?num={{ t_pre_page.previous_page_number }}">上一页</a>
        {% endif %}

        {#    显示也页数的设置#}
        {% for n in paginator.page_range %}
            {% if n < 11 %}
                <a href="/movie/page/?num={{ n }}">{{ n }}</a>
            {% endif %}

        {% endfor %}

        {% if t_pre_page.has_next %}
            <a href="/movie/page/?num={{ t_pre_page.next_page_number }}">下一页</a>
        {% endif %}

展示效果图:

技术分享图片

 

Django--之影片展示

标签:number   越界   install   body   des   clu   session   计算   type   

原文地址:https://www.cnblogs.com/whm1012/p/8710880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!