포도가게의 개발일지
MongoDB pagination 기능 구현 본문
반응형
import os
from flask import Flask, request, render_template, jsonify
from bson.objectid import ObjectId
import math
app = Flask(__name__)
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.cityclone
@app.route("/")
def main():
return render_template('index.html')
@app.route("/boardlist", methods=['GET'])
def boardlist():
## ajax에서 url을 넘겨준 키값을 통해 현재 게시물 페이지 넘버 확인가능 ##
page = request.args.get('page', 1, type=int)
## 한 페이지당 10개의 게시물을 보여줌 ##
limit = 10
##skip(배열 또는 리스트 시작숫자)함수 mongoDB 함수 시작부분을 return 시작전 data는 버려짐 ##
##limit(숫자) 제한된 개수를 return해줌 ##
board_list = db.images.find({}).skip((page - 1)*limit).limit(limit)
## db에 저장된 총 게시물의 개수
tot_count = db.images.find({}).count()
last_page_num = math.ceil(tot_count / limit)
## Object형식을 json에 필요한 str형식으로 바꿔주기 위한 decode
results = []
for document in board_list:
document['_id'] = str(document['_id'])
results.append(document)
return jsonify({'list': results,
'limit': limit,
'page': page,
'last_page_num': last_page_num})
if __name__ == '__main__':
app.run(debug=True)
'DB' 카테고리의 다른 글
Mysql query 작성 (0) | 2021.11.07 |
---|---|
NestJS: TypeOrm 메소드 (0) | 2021.11.06 |
Flask-mongoDB image upload & GridFS (0) | 2021.07.21 |
TypeError:Object of type, JSON serializable, Mongo DB로 받아온 object_id값 json으로 못보낼때 (0) | 2021.07.12 |
Mongo DB 기본(1) (0) | 2021.07.03 |
Comments