博客信息

Python Django 模型层(逆向生成及影片原生分页列表)

发布时间:『 2019-08-05 05:16』  博客类别:Python  阅读(673)

创建项目创建movie应用

python manage.py startapp movie

 

更改数据源

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'python',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'USER':'mybatis_ssm',
        'PASSWORD':'xiaoli'
    }
}


更换数据源mysql

pip install MySQL-python-1.2.5-cp27-none-win_amd64.whl

 

 

创建模型类(逆向生成)

 

python manage.py inspectdb>movie/models.py

 

 

 

配置URL

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^movie/', include('movie.urls'))
]


# coding=utf-8
from django.conf.urls import url

from movie import views

urlpatterns = [
    url(r'^$', views.list_view)
]


创建视图函数

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

import math

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
from movie.models import Movie

# 分页方法(当前页,页大小),返回符合条件的分页结果集以及当前页
def listPager(page=1,rows=15):
    page = int(page)
    if page < 1:
        page = 1

    # 查询出总记录数
    count = Movie.objects.count()

    # 向上取整查询出最大页
    max_page = int(math.ceil(count/1.0/rows))

    # 对于查询出来的影片集合进行切片操作
    movies = Movie.objects.all()[((page-1)*rows):(page*rows)]

    if page > max_page:
        page = max_page

    return movies,page

# 访问分页视图
def list_view(request):
    num = request.GET.get('page',1)
    movies,page = listPager(num)
    return render(request,'list.html',{'movies':movies,'page':page,'pre_page':page-1,'next_page':page+1})



创建模板

 

 

list.html 


启动服务器

.....

 

浏览器访问

 

http://127.0.0.1:8000/movie/?page=2


小李飞刀_Python


数据库脚本

movie.sql 


over......


关键字:     Python       Django  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有