自己做的一个python分页的自定义方法

程序分布如下:

数据库大概如下:

test.py中的代码如下:

#coding=utf-8 #m #m\__author__ = ‘Administrator‘
import MySQLdb #mfrom django.shortcuts import render_to_response
import json
def getdata(request):
    conn = MySQLdb.connect(
            host=‘192.168.8.176‘,
            port = 3306,
            user = ‘chenhuachao‘,
            passwd = ‘123‘,
            db = ‘myblog‘,
     )
    cur=conn.cursor()
#    curr_page=request.GET.get("page","")
#    curr_page=request.GET["page"]
    curr_page=int(request.GET.get("page","1"))
    a=int(curr_page)*3
    sql="select * from blogs_blog limit "+str(a) +",3"
    cur.execute(sql)
    infors=cur.fetchall()
    results=[]
    for infor in infors:
        results.append({‘id‘:infor[0],‘title‘:infor[1],‘author‘:infor[2],‘content‘:[3],‘post_date‘:infor[4]})
    count_sql="select  count(*) from blogs_blog"
    cur.execute(count_sql)
    count_sql=cur.fetchall()
    count=count_sql[0][0]
#   count1 = json.dumps(count_sql)
#   count2=json.loads(count)
#   c=int(count1)
    cur.close()
    conn.close()
    print count
    if count % 3 ==0:
        num_pages=count /3 #总共的页码
    else:
        num_pages=count/3+1 #不解释
    last_page=int(num_pages)-1 #最后页
    int_curr_page=curr_page #获取url中的页码
    if int_curr_page == 0:#判断是否有前一页
        has_previous=False
    else:
        has_previous=True
    if int_curr_page == int(num_pages):#判断是否有下一页
        has_next=False
    else:
        has_next=True
    previous_page_number=int_curr_page -1 #当前页的前一页
    nex_page_number=int_curr_page+1 #当前页的后一页
    return render_to_response(‘test.html‘,locals())

url中的定义:

urlpatterns = patterns(‘‘,
    # Examples:
    # url(r‘^$‘, ‘pagenation.views.home‘, name=‘home‘),
    # url(r‘^pagenation/‘, include(‘pagenation.foo.urls‘)),

    # Uncomment the admin/doc line below to enable admin documentation:
    url(r‘^admin/doc/‘, include(‘django.contrib.admindocs.urls‘)),

    # Uncomment the next line to enable the admin:
    url(r‘^admin/‘, include(admin.site.urls)),
    url(r‘^test/‘, getdata),
)

前端代码如下:(用了bootstrap,大家都懂的)

<!DOCTYPE html>
<html>
<head lang="en">
   <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>分页显示</title>
    <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
    <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</head>
<body>
    <table align="center" class="table table-hover">
        <tr><th>ID</th><th>title</th><th>author</th><th>content</th><th>日期</th></tr>
        {% for res in results %}
        <tr>
         <td>{{ res.id }}</td>
         <td>{{ res.title }}</td>
        <td>{{ res.author }}</td>
        <td>{{ res.content }}</td>
        <td>{{ res.post_date }}</td>
        </tr>
        {% endfor %}
    </table>
    <div align="center">
        <a href="/">返回首页</a>
        总记录数:{{ count }}
        总页数:{{ num_pages }}
        当前页:<fount color="red">{{ curr_page }}</fount>
        {% if has_previous %}
            <a href="/test/?page=0">首页</a>
            <a href="/test/?page={{ previous_page_number }}">上一页</a>
        {% else %}
        首页 上一页
        {% endif %}
        {% if has_next %}
            <a href="/test/?page={{ nex_page_number }}">下一页</a>
            <a href="/test/?page={{ last_page }}"> 尾页</a>
        {% else %}
        下一页 尾页
        {% endif %}
    </div>

</body>
</html>

具体效果:

时间: 2024-10-10 10:29:30

自己做的一个python分页的自定义方法的相关文章

Python分页转Mybatis pagehelper格式分页

最近工作里遇到一个需求要把之前用Java写的一个http接口替换成用Python写的,出参是带了mybatis pageHelper中PageInfo信息的一个JSON串,而Python这边分页不会涉及到数据库查询,属于直接对list进行分页..然后就有了下面的对开源Python分页模块的一个改写(模块地址:https://github.com/Pylons/paginate).至于改动~~emmm~具体来说,就是加了个元类,给原先的Page类动态加了个返回Java格式的JSON字符串的方法,至

写一个python的服务监控程序

写一个python的服务监控程序 前言: Redhat下安装Python2.7 rhel6.4自带的是2.6, 发现有的机器是python2.4. 到python站点下载源码.解压到Redhat上.然后执行以下的命令: # ./configure --prefix=/usr/local/python27 # make # make install 这样安装之后默认不会启用Python2.7.须要使用/usr/local/python27/bin/python2.7调用新版本号的python. 而

3. 第一个python程序

学习任何一门语言的第一步,首先要写个'hello world',这算是程序员的一个传统.但在写之前,还有注意几个问题. 首先,python是一门脚本语言,而脚本语言的特点就是:我们写的代码会先由解释器进行编译以后,再去执行.但是当我们的程序运行在操作系统之上时,系统并没有那么智能,能够自动识别出我们要用哪个解释器去解释我们的代码(windows则通过后缀名关联执行程序,所以不用声明也可以,但是我们的代码更多在linux上运行,所以解释器的声明算是必须的),所以,我们必须要声明我们的解释器是什么.

《Python入门》第一个Python Web程序——简单的Web服务器

上一篇讲了<Python入门>Windows 7下Python Web开发环境搭建笔记,接下来讲一下Python语言Web服务的具体实现:第一个Python Web程序--简单的Web服务器. 与其它Web后端语言不同,Python语言需要自己编写Web服务器. 如果你使用一些现有的框架的话,可以省略这一步: 如果你使用Python CGI编程的话,也可以省略这一步: 用Python建立最简单的web服务器 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录

自己做的一个输入输出缓冲池

2014-05-15 22:02 by Jeff Li 前言 系列文章:[传送门] 马上快要期末考试了,为了学点什么.就准备这系列的博客,记录复习的成果. 正文-计数  概率 概率论研究随机事件.它源于赌徒的研究.即使是今天,概率论也常用于赌博.随机事件的结果是否只凭运气呢?高明的赌徒发现了赌博中的规律.尽管我无法预知事件的具体结果,但我可以了解每种结果出现的可能性.这是概率论的核心. "概率"到底是什么?这在数学上还有争议."频率派"认为概率是重复尝试多次,某种结

对“第一个Python程序”的改进

概述: 本程序主要是模仿<Python核心编程>中3.6节--第一个Python程序,并在其基础上做了一些小的改进,而改进的要求则是来源于第三章的课后练习题. 本篇博客的一个核心问题就是在我们如何避免重复制造轮子. 课本源程序: 这里不对课本上的源程序作过多地讲解,因为课本本身就说得非常清楚而且易懂. 改进需求: 1. 可以创建新的文件: 2. 可以读取新的文件: 3. 可以让用户选择创建或是读取文件. 看到上面的需求,可以你的第一感觉就是,哦,这个太简单了.不就是把之前写过的代码在这里复制粘

如何调用另一个python文件中的代码

如何调用另一个python文件中的代码 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另外一个文件的函数呀数据等等,总之要操作其他文件中的代码,在java中,只要在同一个文件目录下,我们就不需要通过import导入,但是在Python中,我们就需要通过import来进行导入,这样我们才能应用其他文件中定义的函数和数据等代码. 对于刚接触python的我们,这是我们需要掌握的. 下面就以两个文件为例,例

Python学习笔记一:第一个Python程序,变量,字符编码与二进制,用户交互程序

第一个python程序 Windows:设置环境变量,X:\pthonxxx,xxx是版本号 在命令提示符下 输入python,进入解释器 >>>print("Hello World!") >>>exit() 编辑文件helloworld.py 执行:python helloworld.py Linux:./helloworld.py   声明解释器:#!/usr/bin/env python  在环境变量中找python Chmod 755 hel

做为一个前端工程师,是往node方面转,还是往HTML5方面转

文章背景:问题本身来自于知乎,但是我感觉这个问题很典型,有必要把问题在整理一下,重新分享出来. 当看到这个问题之前,我也碰到过很多有同样疑惑的同学,他们都有一个共同的疑问该学php还是nodejs,包括我自己也曾有过同样的经历.幸运的是,通过我内心的挣扎和对当前市场供需关系以及行业发展前景的综合衡量评估后,我还是在接触了java, php之后回到js这片天空上来了.一方面是客观因素,一方面是兴趣导致的,前端太好玩了,值得为此奉献一点激情或青春. 其实这也是一个开发者成长必须经历的一个洗礼,一个磨