展示影片
准备工作:
- 打开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 %}
展示效果图: