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

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

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

by mindphp » 13/10/2019 11:14 pm

Flask เป็น Framework Python อีกตัวที่ มี Lib ต่างๆ ให้ครบ

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

by chatee supasand » 30/07/2019 11:57 am

เพิ่มเติม
ถ้าเราต้องการแก้ไข จำนวนแถวของตาราง ให้แสดงตามที่เราต้องการ
เช่น 20 แถว เราจะมาแก้ที่ไฟล์ app.pfg ตามรูปเลยครับ
pg.png
pg.png (18.75 KiB) Viewed 560 times
ไฟล์ app.pfg จะได้มาตอนเรา import Pagination มาใช้งานนะครับ
pg2.png
pg2.png (9.65 KiB) Viewed 560 times

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

by chatee supasand » 05/07/2019 11:34 am

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

Code: Select all

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

Code: Select all

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

Code: Select all

 {{ 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

Top