การแบ่งหน้าตาราง Pagination โดยใช้ flask paginate สำหรับคนใช้ Python ทำเว็บ

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
chatee supasand
PHP VIP Members
PHP VIP Members
โพสต์: 1666
ลงทะเบียนเมื่อ: 04/06/2019 10:06 am

การแบ่งหน้าตาราง Pagination โดยใช้ flask paginate สำหรับคนใช้ Python ทำเว็บ

โพสต์ที่ยังไม่ได้อ่าน โดย chatee supasand »

การทำหน้าในส่วนของการแบ่งหน้าตารางนั้นสามารถทำได้เหมือนกันในภาษา Pythonซึ่งตัวของภาษาไพทอนเอง ก็มี ตัวของ flask ที่เป็นเฟรมเวิร์ค
ที่เขียนขึ้นมาใช้งาน สำหรับภาษาไพทอน ในที่นี้เราจะใช้งานในส่วนของ flask paginate เพื่อใช้ในการสร้าง Pagination ให้กับตาราง ข้อมูลของเรา
ที่เราต้องการจะแสดง

โค้ด: เลือกทั้งหมด

from flask_paginate import Pagination, get_page_args
จะมีตัวอย่างดังนี้

โค้ด: เลือกทั้งหมด

from flask_paginate import Pagination, get_page_args #เลือกใช้คำสั่ง 

app = Flask(__name__)
app.config.from_pyfile('app.cfg')#ไฟล์ confic ตั้งจำนวนที่จะให้แสดงจำนวนในแถว

@app.route('/show') #กำหนด หน้า path
def show(): #def  เป็นคำสำคัญสำหรับการสร้างฟังก์ชัน
        cur.execute('select count(*) from genpdf') #เรียกข้อมูลจากตาราง
        total = cur.fetchone()[0]
        page, per_page, offset = get_page_args(page_parameter='page',
                                               per_page_parameter='per_page')
        sql = "SELECT * FROM genpdf ORDER BY fileid LIMIT {} OFFSET {}" \
            .format(per_page, offset) #แสดงตารางโดยใช้ Limit ในการกำหนดค่า 
        sql = sql.decode('utf8')
        print(sql)
        cur.execute(sql)
        rows = cur.fetchall()  # ทำการเลือกข้อมูลทั้งหมด
        pagination = get_pagination(page=page,
                                    per_page=per_page,
                                    total=total,
                                    record_name='users',
                                    format_total=True,
                                    format_number=True,
                                    )
        return render_template('show.html', rows=rows,
                               page=page,
                               per_page=per_page,
                               pagination=pagination, )  # เรนเดอร์ไฟล์ที่ชื่อ show ที่อยู่ในไดเร้กทอรี่ที่ชื่อ templates
                               
                               def get_css_framework():
    return current_app.config.get('CSS_FRAMEWORK', 'bootstrap4')


def get_link_size():
    return current_app.config.get('LINK_SIZE', 'sm')


def get_alignment():
    return current_app.config.get('LINK_ALIGNMENT', '')


def show_single_page_or_not():
    return current_app.config.get('SHOW_SINGLE_PAGE', False)

def get_pagination(**kwargs):
    kwargs.setdefault('record_name', 'records')
    return Pagination(css_framework=get_css_framework(),
                      link_size=get_link_size(),
                      alignment=get_alignment(),
                      show_single_page=show_single_page_or_not(),
                      **kwargs
                      )
show.html

โค้ด: เลือกทั้งหมด

 {{ pagination.links }}  <!--แสดงตัวของ  pagination -->
    <!-- วนลูปเพื่อดึงข้อมูลมาแสดง -->
             {% for row in rows %}
             <tr>
                <td align="center">{{ row[0] }}</td>
                <td align="center">{{ row[1] }}</td>
                <td align="center">{{ row[2] }}</td>
                <td align="center">{{ row[3] }}</td>
                <td align="center">{{ row[4] }}</td>
                <!-- สร้างปุ่มเพื่อทำการลบ-->
             </tr>
         {% endfor %} <!-- ปิดลูป-->
    {{ pagination.links }}
อ้างอิง
https://www.mindphp.com/คู่มือ/73-คืออะ ... ออะไร.html

viewtopic.php?f=72&t=54216

viewforum.php?f=29
แก้ไขล่าสุดโดย chatee supasand เมื่อ 30/07/2019 7:19 pm, แก้ไขไปแล้ว 1 ครั้ง.
รูปภาพ
ภาพประจำตัวสมาชิก
chatee supasand
PHP VIP Members
PHP VIP Members
โพสต์: 1666
ลงทะเบียนเมื่อ: 04/06/2019 10:06 am

Re: การแบ่งหน้าตาราง Pagination โดยใช้ flask paginate สำหรับคนใช้ Python ทำเว็บ

โพสต์ที่ยังไม่ได้อ่าน โดย chatee supasand »

เพิ่มเติม
ถ้าเราต้องการแก้ไข จำนวนแถวของตาราง ให้แสดงตามที่เราต้องการ
เช่น 20 แถว เราจะมาแก้ที่ไฟล์ app.pfg ตามรูปเลยครับ
pg.png
pg.png (18.75 KiB) Viewed 1400 times
ไฟล์ app.pfg จะได้มาตอนเรา import Pagination มาใช้งานนะครับ
pg2.png
pg2.png (9.65 KiB) Viewed 1400 times
รูปภาพ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41248
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: การแบ่งหน้าตาราง Pagination โดยใช้ flask paginate สำหรับคนใช้ Python ทำเว็บ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

Flask เป็น Framework Python อีกตัวที่ มี Lib ต่างๆ ให้ครบ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 96