python - tornado分页问题
怪我咯
怪我咯 2017-04-17 14:34:08
[Python讨论组]

需要在用户输入/chat_data后展示该页面,页面内容大致如下:

后端使用get及post render chat_data.html,get用于初始化展示,post用于在用户选择区服和公会查询结果的展示。前端需要直接返回区服默认值及公会默认值,并展示对应的数据,同时初始化分页,1到总页数;
现在的问题是:get和post方法中的代码很相近,都是查询数据库,怎么合并一起展示

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
阿神

提取出一个查询数据库的函数放到request hanlder里面呗?get和post的时候都调这个函数就是了。

PHPz

get只返回静态页面html,post做分页数据接口,返回json;
页面里用js去分别加载区服、工会列表,放入select里,同时发送post请求取第一页的chat data,参数都为空.
查询时带参数post就行了;

class ChatDataListForm(Form):
    qufu_id = IntegerField(validators=[Optional()])
    gonghui_id = IntegerField(validators=[Optional()])
    #
    # draw = IntegerField(validators=[Optional()], default=1)
    # page = IntegerField(validators=[Optional()], default=0)
    offset = IntegerField(validators=[Optional()], default=0)
    limit = IntegerField(validators=[Optional()], default=10)
    order_by = StringField(validators=[Optional()])

class ChatDataListHandler(BaseHandler):
    def get(self):
        self.render('chat-data.html')

    def post(self):
        form = ChatDataListForm(self.request.arguments)
        q = self.session.query(ChatData)
        records_total = q.count()

        if form.gonghui_id.data is not None:
            q = q.filter(ChatData.gonghui_id == form.gonghui_id.data)
        if form.qufu_id.data is not None:
            q = q.filter(ChatData.qufu_id == form.qufu_id.data)

        records_filtered = q.count()
        q = q.order_by('id desc')
        records = q.offset(form.offset.data).limit(form.limit.data).all()
        #records = q.offset((form.page.data) * form.limit.data).limit(form.limit.data).all()

        ret = {
            'code': 0,
            'recordsTotal': records_total,
            'recordsFiltered': records_filtered,
            'data': records,
            'draw': form.draw.data,
        }
        self.render_json(ret)

类似的再写区服、公会的handler, 这样handler功能较为简单专一,不过需要写些js

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号