文章目录
显示
搜索和分页功能的实现
分页功能的实现
修改配置文件,总的展现数为1,
PAGE_SIZE=1
PAGE_DISPLAY=10
理论上应该展示3页
当我们点击尾页的时候,这里报错了
是因爲没有正确的传递p进去,而且需要下次传递时,将上一次置空
@route_account.route( "/index" )
def index():
resp_data = {}
req = request.values
page = int(req['p'])if ('p' in req and req['p']) else 1
query = User.query
page_params = {
'total':query.count(),
'page_size':app.config['PAGE_SIZE'],
'page' :page,
'display':app.config['PAGE_DISPLAY'],
'url':request.full_path.replace("&p={}".format(page),"")
}
我们将默认值改回去
搜索功能的实现
添加js方法,點擊搜索提交
在account
文件夹下 添加index.js
;
var account_index_ops = {
init:function () {
this.eventBind();
},
eventBind:function () {
$(".wrap_search .search").click(function(){
$(".wrap_search").submit()
});
}
}
$(document).ready(function () {
account_index_ops.init()
})
模板里加载js
account.py添加接口調整
# -*- coding: utf-8 -*-
from flask import Blueprint,request,redirect,jsonify
from common.libs.Helper import ops_render,iPagination,getCurrentDate
from common.models.User import User
from common.libs.UrlManager import UrlManager
from common.libs.user.UserService import UserService
from application import app,db
from sqlalchemy import or_
route_account = Blueprint( 'account_page',__name__ )
@route_account.route( "/index" )
def index():
resp_data = {}
req = request.values
page = int(req['p'])if ('p' in req and req['p']) else 1
query = User.query
if 'mix_kw' in req:
rule = or_(User.nickname.ilike("%{0}%".format(req['mix_kw'])), User.mobile.ilike("%{0}%".format(req['mix_kw'])))
query = query.filter(rule)
if 'status' in req and int(req['status'])>-1:
query = query.filter(User.status == int(req['status']))
page_params = {
'total':query.count(),
'page_size':app.config['PAGE_SIZE'],
'page' :page,
'display':app.config['PAGE_DISPLAY'],
'url':request.full_path.replace("&p={}".format(page),"")
}
默认保留搜索页面
Account.py
resp_data[ 'list'] = list
resp_data[ 'pages'] = pages
resp_data[ 'search_con'] = req
return ops_render( "account/index.html" , resp_data)
index.html
<div class="form-group">
<div class="input-group">
<input type="text" name="mix_kw" placeholder="请输入姓名或者手机号码" class="form-control" value="{{search_con['mix_kw']}}">
<input type="hidden" name="p" value="{{search_con['p']}}">
<span class="input-group-btn">
账号状态保存
base_setting.py
STATUS_MAPPING = {
"1":"正常",
"0":"已删除"
}
Account.py
resp_data[ 'list'] = list
resp_data[ 'pages'] = pages
resp_data[ 'search_con'] = req
resp_data[ 'status_mapping' ] = app.config['STATUS_MAPPING']
return ops_render( "account/index.html" , resp_data)
index.html
<div class="row m-t p-w-m">
<div class="form-group">
<select name="status" class="form-control inline">
<option value="-1">请选择状态</option>
{% for tmp_key in status_mapping %}
<option value="{{tmp_key}}" {% if tmp_key == search_con['status'] %} selected {% endif %}>{{status_mapping[tmp_key]}}</option>
{% endfor %}
</select>
</div>