Django--之影片展示

展示影片


准备工作:

  • 打开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 %}

展示效果图:

 

转载于:https://www.cnblogs.com/whm1012/p/8710880.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值