成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python自動(dòng)化運(yùn)維開發(fā)----基礎(chǔ)(十四)Mysql數(shù)據(jù)

后端數(shù)據(jù)庫分頁是根據(jù)limit實(shí)現(xiàn)的

在江北等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),江北網(wǎng)站建設(shè)費(fèi)用合理。

第一種寫法: limit 每頁的個(gè)數(shù) offset 起始位置

select id,name,sex,tel,addr from user limit 1 offset 1;
select * from student limit pageSize offset (pageNumber-1)*pageSize

Python自動(dòng)化運(yùn)維開發(fā)----基礎(chǔ)(十四)Mysql數(shù)據(jù)

第二種寫法: limit 起始位置,每頁的個(gè)數(shù)

select id,name from user limit 1,2;
select * from studnet limit (pageNumber-1)*pageSize,pageSize

Python自動(dòng)化運(yùn)維開發(fā)----基礎(chǔ)(十四)Mysql數(shù)據(jù)

當(dāng)數(shù)據(jù)量比較大的時(shí)候分頁采用子查詢的方式

select id,name from user where id >= (select id from user order by id limit 1,1) limit 2;
select id,name from user where id >= (select id from user order by id limit 起始位置,1) limit 每頁的個(gè)數(shù);

Python自動(dòng)化運(yùn)維開發(fā)----基礎(chǔ)(十四)Mysql數(shù)據(jù)

Python代碼中實(shí)現(xiàn)后臺(tái)數(shù)據(jù)分頁

views.py文件

Page()函數(shù)是mypage.py里邊類的方法

user_count() 是獲取MySQL 數(shù)據(jù)總數(shù)的方法

def index(request):
    page_num = request.GET.get("page")
    login_user = request.session.get('user')
    count = user_count()
    per_page = 2
    page_obj = Page(page_num, count,url_prefix="/users/",per_page=2, max_page=4,)
    page_num = page_obj.num
    users = mysql_page(per_page,page_num)
    page_html = page_obj.page_html()
    return render(request,'static/index.html',{"users": users,"login_user": login_user,"page_html": page_html})

mypage.py

class Page():

    def __init__(self, page_num, total_count, url_prefix, per_page, max_page=4):
        """
        :param page_num: 當(dāng)前頁碼數(shù)
        :param total_count: 數(shù)據(jù)總數(shù)
        :param url_prefix: a標(biāo)簽href的前綴
        :param per_page: 每頁顯示多少條數(shù)據(jù)
        :param max_page: 頁面上最多顯示幾個(gè)頁碼
        """
        self.url_prefix = url_prefix
        self.max_page = max_page
        # 每一頁顯示多少條數(shù)據(jù)
        # 總共需要多少頁碼來展示
        total_page, m = divmod(total_count, per_page)
        if m:
            total_page += 1
        self.total_page = total_page

        try:
            page_num = int(page_num)
            # 如果輸入的頁碼數(shù)超過了最大的頁碼數(shù),默認(rèn)返回最后一頁
            if page_num > total_page:
                page_num = total_page
        except Exception as e:
            # 當(dāng)輸入的頁碼不是正經(jīng)數(shù)字的時(shí)候 默認(rèn)返回第一頁的數(shù)據(jù)
            page_num = 1
        self.page_num = page_num


        # 頁面上總共展示多少頁碼
        if total_page < self.max_page:
            self.max_page = total_page

    @property
    def num(self):
        return self.page_num

    def page_html(self):
        # 自己拼接分頁的HTML代碼
        html_str_list = []
        # 加上第一頁
        html_str_list.append('<li><a href="{}?page=1">首頁</a></li>'.format( self.url_prefix))

        # 判斷一下 如果是第一頁,就沒有上一頁
        if self.page_num <= 1:
            html_str_list.append('<li class="disabled"><a href="#"><span aria-hidden="true">&laquo;</span></a></li>'.format(self.page_num-1))
        else:
            # 加一個(gè)上一頁的標(biāo)簽
            html_str_list.append('<li><a href="{}?page={}"><span aria-hidden="true">&laquo;</span></a></li>'.format( self.url_prefix, self.page_num-1))

        for i in range(1,self.total_page+1):
            # 如果是當(dāng)前頁就加一個(gè)active樣式類
            if i == self.page_num:
                tmp = '<li class="active"><a href="{0}?page={1}">{1}</a></li>'.format(self.url_prefix, i)
            else:
                tmp = '<li><a href="{0}?page={1}">{1}</a></li>'.format( self.url_prefix, i)

            html_str_list.append(tmp)

        # 加一個(gè)下一頁的按鈕
        # 判斷,如果是最后一頁,就沒有下一頁
        if self.page_num >= self.total_page:
            html_str_list.append('<li class="disabled"><a href="#"><span aria-hidden="true">&raquo;</span></a></li>')
        else:
            html_str_list.append('<li><a href="{}?page={}"><span aria-hidden="true">&raquo;</span></a></li>'.format( self.url_prefix, self.page_num+1))
        # 加最后一頁
        html_str_list.append('<li><a href="{}?page={}">尾頁</a></li>'.format( self.url_prefix, self.total_page))

        page_html = "".join(html_str_list)
        return page_html

models,py 

def mysql_page(per_page,page):
    start = (page - 1 ) * per_page
    sql = 'select id,name,sex,age,tel,addr,role from user where id >= \
                          ( select id from user order by id limit %s,1)limit %s'
    args = (start,per_page)
    conn = MySQLdb.connect(host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER, passwd=MYSQL_PASSWORD, db=MYSQL_DB,
                           charset='utf8mb4')
    cursor = conn.cursor()
    cursor.execute(sql, args)
    lines = cursor.fetchall()
    users = []
    for line in lines:
        users.append({
            'id': line[0],
            'name': line[1],
            'sex': '男' if line[2] else '女',
            'age': line[3],
            'tel': line[4],
            'addr': line[5],
            'role': line[6]
        }
        )
    cursor.close()
    conn.close()
    return users

名稱欄目:Python自動(dòng)化運(yùn)維開發(fā)----基礎(chǔ)(十四)Mysql數(shù)據(jù)
文章URL:http://jinyejixie.com/article16/ggigdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管響應(yīng)式網(wǎng)站、網(wǎng)站策劃自適應(yīng)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
中山市| 梁河县| 恭城| 江城| 若羌县| 津南区| 大名县| 高尔夫| 北川| 彭山县| 丹江口市| 柘荣县| 东宁县| 榆中县| 开化县| 合江县| 萝北县| 柳州市| 黔南| 茶陵县| 西贡区| 通山县| 乌鲁木齐县| 天柱县| 漠河县| 五常市| 秭归县| 咸丰县| 那坡县| 惠东县| 清新县| 连平县| 京山县| 肥西县| 东阳市| 河曲县| 维西| 简阳市| 文山县| 海口市| 秦皇岛市|