后端數(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
第二種寫法: limit 起始位置,每頁的個(gè)數(shù)
select id,name from user limit 1,2;
select * from studnet limit (pageNumber-1)*pageSize,pageSize
當(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代碼中實(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">«</span></a></li>'.format(self.page_num-1)) else: # 加一個(gè)上一頁的標(biāo)簽 html_str_list.append('<li><a href="{}?page={}"><span aria-hidden="true">«</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">»</span></a></li>') else: html_str_list.append('<li><a href="{}?page={}"><span aria-hidden="true">»</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)