前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 前端参数不定的级联查询实现

python 前端参数不定的级联查询实现

作者头像
葫芦
发布2019-04-17 16:14:24
1K0
发布2019-04-17 16:14:24
举报
文章被收录于专栏:葫芦葫芦

前端参数不定情况下的级联查询实现。

下拉选单有的可能选了,有的可能没选。

对应后端一般需要写多个方法来进行对应。

但通过字符串sql拼接可以巧妙的,用一个方法应对参数个数不定情况下的查询。

以下为前端传不定个数参数给后端,后端django通过sql拼接,实现不定参数的级联查询。         

关键语句:

operator = "AND operator='{0}'".format(cleaned_data['operator'])

代码语言:javascript
复制
class AlarmTable(APIMeta):
    def __init__(self, request):
        super(AlarmTable, self).__init__(request)
        self.form_class = forms.AlarmTable

    def handle(self, cleaned_data):
        start_time = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(cleaned_data['start_time'], '%Y-%m-%d %H:%M:%S'))
        end_time = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(cleaned_data['end_time'], '%Y-%m-%d %H:%M:%S'))
        operator = ''
        service_name = ''
        area_name = ''
        level = ''
        components = ''
        biz_name = ''
        if cleaned_data['operator'] != '':
            operator = "AND operator='{0}'".format(cleaned_data['operator'])
        if cleaned_data['service_name'] != '':
            service_name = "AND service_name='{0}'".format(cleaned_data['service_name'])
        if cleaned_data['area_name'] != '':
            area_name = "AND area='{0}'".format(cleaned_data['area_name'])
        if cleaned_data['level'] != '':
            level = "AND important_level='{0}'".format(cleaned_data['level'])
        if cleaned_data['component'] != '':
            components = "AND components='{0}'".format(cleaned_data['component'])
        if cleaned_data['biz_name'] != '':
            biz_name = "AND biz_name='{0}'".format(cleaned_data['biz_name'])

        sql = """SELECT dtEventTime,service_name,operator,biz_name,area,important_level,err_content,components
                 FROM test_table
               WHERE dtEventTime>='{0}' AND dtEventTime<='{1}' {2} {3} {4} {5} {6} {7} order by dtEventTime desc limit 5000
        """.format(start_time, end_time, operator, service_name, area_name, level, components, biz_name)
        data_rst = bk_data.send_request(sql)
        return data_rst
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019/02/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档