here 페이지 매김을위한 멋진 템플릿을 발견했습니다. 그러나이 예제는 SQLlite로 수행되었지만 CouchDB를 사용할 수 있도록 다시 작성했습니다.CouchDB로 플라스크 - 페이지 매김
이 스크립트는 사용자를 작성하고 CouchDB를에 저장 :
from couchdb import Server
import sys
def fill_data(users_no):
for i in range(users_no):
doc = {
'_id': str(i),
'uname': "name_" + str(i),
}
db.save(doc)
if __name__ == '__main__':
server = Server()
db = server.create("pagination")
fill_data(1000)
내가 CouchDB를 사용할 수 있도록 onrder의 orginal 한
app.py 스크립트를 수정했습니다.
from __future__ import unicode_literals
from flask import Flask, render_template, g, current_app, request
from flask.ext.paginate import Pagination
from couchdb import Server
app = Flask(__name__)
app.config.from_pyfile('app.cfg')
@app.route('/')
def index():
"""
Map function
function(doc) {
emit(doc._id, doc.uname);
}
"""
for row in db.view('_design/snp/_view/by_unames'):
print row
total = ???
print total
page, per_page, offset = get_page_items()
pagination = get_pagination(page=page,
per_page=per_page,
total=total,
record_name=users,
)
return render_template('index.html', users=users,
page=page,
per_page=per_page,
pagination=pagination,
)
def get_css_framework():
return current_app.config.get('CSS_FRAMEWORK', 'bootstrap3')
def get_link_size():
return current_app.config.get('LINK_SIZE', 'sm')
def show_single_page_or_not():
return current_app.config.get('SHOW_SINGLE_PAGE', False)
def get_page_items():
page = int(request.args.get('page', 1))
per_page = request.args.get('per_page')
if not per_page:
per_page = current_app.config.get('PER_PAGE', 10)
else:
per_page = int(per_page)
offset = (page - 1) * per_page
return page, per_page, offset
def get_pagination(**kwargs):
kwargs.setdefault('record_name', 'records')
return Pagination(css_framework=get_css_framework(),
link_size=get_link_size(),
show_single_page=show_single_page_or_not(),
**kwargs
)
if __name__ == '__main__':
server = Server()
db = server["pagination"]
app.run(debug=True)
뷰에서 총 수를 얻을 수있는 가장 좋은 방법은 무엇입니까 :이 수정 된 스크립트입니다?
페이지 매기기 메뉴에서 다음 또는 이전 페이지를 클릭하여 총 횟수를 다시 계산하지 않으려면 어떻게해야합니까?