• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python query.Query类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中querybuilder.query.Query的典型用法代码示例。如果您正苦于以下问题:Python Query类的具体用法?Python Query怎么用?Python Query使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Query类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_insert_single_row

    def test_insert_single_row(self):
        G(User, id=1)

        query = Query().from_table(
            table=Account,
            fields=[
                'user_id',
                'first_name',
                'last_name'
            ]
        )

        rows = [
            [1, 'Test', 'User']
        ]

        sql, sql_params = query.get_insert_sql(rows)

        self.assertEqual(
            sql,
            (
                'INSERT INTO tests_account (user_id, first_name, last_name) VALUES (%s, %s, %s)'
            )
        )
        self.assertEqual(sql_params[0], 1)
        self.assertEqual(sql_params[1], 'Test')
        self.assertEqual(sql_params[2], 'User')

        query.insert(rows)
        sql = self.logger.get_log()[2]['sql']
        self.assertEqual(sql, "INSERT INTO tests_account (user_id, first_name, last_name) VALUES (1, 'Test', 'User')")
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:31,代码来源:insert_tests.py


示例2: test_clear_log

    def test_clear_log(self):
        """
        Makes sure queries are cleared
        """
        logger_one = Logger('one')
        logger_one.start_logging()
        query = Query().from_table(Account)

        # run a query and update the logger's query list
        query.select()
        logger_one.update_log()

        # the index should be at 1
        self.assertEqual(1, logger_one.query_index)

        # increment the connection query count
        query.select()

        # clear the log
        logger_one.clear_log()

        # make sure no queries
        self.assertEqual(0, len(logger_one.queries))

        # query index should match that of the connection log
        self.assertEqual(2, logger_one.query_index)
开发者ID:micahhausler,项目名称:django-query-builder,代码行数:26,代码来源:logger_tests.py


示例3: test_join_model_fields_extract

    def test_join_model_fields_extract(self):
        query = Query().from_table(
            table=Account,
            fields=[
                '*',
            ]
        ).join(
            Order,
            fields=[
                '*'
            ]
        )

        query_str = query.get_sql()
        expected_query = (
            'SELECT tests_account.*, '
            'tests_order.id, '
            'tests_order.account_id, '
            'tests_order.revenue, '
            'tests_order.margin, '
            'tests_order.margin_percent, '
            'tests_order.time '
            'FROM tests_account '
            'JOIN tests_order ON tests_order.account_id = tests_account.id'
        )
        self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:26,代码来源:join_tests.py


示例4: test_join_model_fields_prefix

    def test_join_model_fields_prefix(self):
        query = Query().from_table(
            table=Account,
            fields=[
                '*',
            ]
        ).join(
            Order,
            fields=[
                'id',
                'margin',
            ],
            prefix_fields=True
        )

        query_str = query.get_sql()

        expected_query = (
            'SELECT tests_account.*, '
            'tests_order.id AS "order__id", '
            'tests_order.margin AS "order__margin" '
            'FROM tests_account '
            'JOIN tests_order ON tests_order.account_id = tests_account.id'
        )
        self.assertEqual(query_str, expected_query)
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:25,代码来源:join_tests.py


示例5: test_select_fields_two_tables_alias

 def test_select_fields_two_tables_alias(self):
     query = Query().from_table(
         table={
             'table_one': Account
         },
         fields=[{
             'f1': 'field_one'
         }, {
             'f2': 'field_two'
         }]
     ).from_table(
         table={
             'table_two': 'second_table'
         },
         fields=[{
             'f3': 'field_three'
         }, {
             'f4': 'field_four'
         }]
     )
     query_str = query.get_sql()
     expected_query = (
         'SELECT table_one.field_one AS "f1", '
         'table_one.field_two AS "f2", '
         'table_two.field_three AS "f3", '
         'table_two.field_four AS "f4" '
         'FROM tests_account AS table_one, '
         'second_table AS table_two'
     )
     self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:30,代码来源:select_tests.py


示例6: test_join_model_fields

    def test_join_model_fields(self):
        query = Query().from_table(
            table=Account,
            fields=[
                'one',
                'two',
            ]
        ).join(
            Order,
            fields=[{
                'three': 'one'
            }, {
                'four': 'two'
            }]
        )

        query_str = query.get_sql()
        expected_query = (
            'SELECT tests_account.one, '
            'tests_account.two, '
            'tests_order.one AS "three", '
            'tests_order.two AS "four" '
            'FROM tests_account '
            'JOIN tests_order ON tests_order.account_id = tests_account.id'
        )
        self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:26,代码来源:join_tests.py


示例7: test_where_complex

    def test_where_complex(self):
        query = Query().from_table(
            table='test_table'
        ).where(Q(
            one=1
        )).where(Q(
            two__gt=2
        )).where(~Q(
            three__gte=3
        )).where(~Q(
            four__lt=4
        ), OR).where(Q(
            five__lte=5
        ), OR).where(Q(
            six__contains='six'
        )).where(~Q(
            seven__startswith='seven'
        )).where(Q(
            eight=8
        ) & Q(
            nine=9
        ) | Q(
            ten=10
        ) | ~Q(
            eleven=11
        ))

        query_str = query.get_sql()
        expected_query = ''.join([
            'SELECT test_table.* FROM test_table WHERE ',
            '(((one = %(A0)s AND two > %(A1)s AND (NOT(three >= %(A2)s))) OR (NOT(four < %(A3)s)) ',
            'OR five <= %(A4)s) AND (six LIKE %(A5)s) AND (NOT(seven LIKE %(A6)s)) AND ',
            '((eight = %(A7)s AND nine = %(A8)s) OR ten = %(A9)s OR (NOT(eleven = %(A10)s))))'
        ])
        self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:35,代码来源:where_tests.py


示例8: test_select_all_from_model

 def test_select_all_from_model(self):
     query = Query().from_table(
         table=Account
     )
     query_str = query.get_sql()
     expected_query = 'SELECT tests_account.* FROM tests_account'
     self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:7,代码来源:select_tests.py


示例9: test_insert_multiple_rows

    def test_insert_multiple_rows(self):
        query = Query().from_table(
            table=Account,
            fields=[
                'user_id',
                'first_name',
                'last_name'
            ]
        )

        rows = [
            [1, 'Test', 'User'],
            [2, 'Test2', 'User2'],
        ]

        sql, sql_params = query.get_insert_sql(rows)

        self.assertEqual(
            sql,
            'INSERT INTO tests_account (user_id, first_name, last_name) VALUES (%s, %s, %s), (%s, %s, %s)'
        )
        self.assertEqual(sql_params[0], 1)
        self.assertEqual(sql_params[1], 'Test')
        self.assertEqual(sql_params[2], 'User')
        self.assertEqual(sql_params[3], 2)
        self.assertEqual(sql_params[4], 'Test2')
        self.assertEqual(sql_params[5], 'User2')

        query.insert(rows)
        sql = self.logger.get_log()[0]['sql']
        self.assertEqual(
            sql,
            ("INSERT INTO tests_account (user_id, first_name, last_name) "
             "VALUES (1, 'Test', 'User'), (2, 'Test2', 'User2')")
        )
开发者ID:AlexandrPaveluc,项目名称:django-query-builder,代码行数:35,代码来源:insert_tests.py


示例10: test_get_alias

    def test_get_alias(self):
        """
        Tests the different cases of getting the alias of a field
        """
        field = SimpleField(field="revenue")
        query = Query().from_table(table=Order, fields=[field])
        expected_query = "SELECT tests_order.revenue FROM tests_order"
        self.assertEqual(expected_query, query.get_sql())

        field.auto_alias = "my_auto_alias"
        query = Query().from_table(table=Order, fields=[field])
        expected_query = 'SELECT tests_order.revenue AS "my_auto_alias" FROM tests_order'
        self.assertEqual(expected_query, query.get_sql())

        field.alias = "my_alias"
        query = Query().from_table(table=Order, fields=[field])
        expected_query = 'SELECT tests_order.revenue AS "my_alias" FROM tests_order'
        self.assertEqual(expected_query, query.get_sql())

        query = Query().from_table(table=Order, fields=[field], prefix_fields=True, field_prefix="my_field_prefix")
        expected_query = 'SELECT tests_order.revenue AS "my_field_prefix__my_alias" FROM tests_order'
        self.assertEqual(expected_query, query.get_sql())

        field.alias = None
        field.auto_alias = None
        query = Query().from_table(table=Order, fields=[field], prefix_fields=True, field_prefix="my_field_prefix")
        expected_query = 'SELECT tests_order.revenue AS "my_field_prefix__revenue" FROM tests_order'
        self.assertEqual(expected_query, query.get_sql())
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:28,代码来源:field_tests.py


示例11: test_cast

    def test_cast(self):
        query = Query().from_table(
            table=Account,
            fields=[
                CountField(
                    'id',
                    alias='count',
                    cast='float'
                )
            ]
        )

        query_str = query.get_sql()
        expected_query = 'SELECT CAST(COUNT(tests_account.id) AS FLOAT) AS count FROM tests_account'
        self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))

        received = query.select()[0]['count']
        expected = float(len(User.objects.all()))
        self.assertEqual(
            received,
            expected,
            'Expected {0} but received {1}'.format(
                expected,
                received
            )
        )
开发者ID:micahhausler,项目名称:django-query-builder,代码行数:26,代码来源:query_tests.py


示例12: test_inner_alias

    def test_inner_alias(self):
        inner_query = Query().from_table(Account)
        query = Query().from_table({"Q0": inner_query})

        query_str = query.get_sql()
        expected_query = "WITH Q0 AS (SELECT tests_account.* FROM tests_account) SELECT Q0.* FROM Q0"
        self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:mypebble,项目名称:django-query-builder,代码行数:7,代码来源:select_tests.py


示例13: test_week_grouping

 def test_week_grouping(self):
     """
     Verifies that the week grouping query and result is correct
     """
     query = Query().from_table(
         table=Order,
         fields=[
             Week('time', auto=True),
             SumField('margin')
         ]
     )
     expected_query = (
         "SELECT CAST(EXTRACT(year FROM tests_order.time) AS INT) AS time__year, "
         "CAST(EXTRACT(week FROM tests_order.time) AS INT) AS time__week, "
         "CAST(EXTRACT(epoch FROM date_trunc('week', tests_order.time)) AS INT) AS time__epoch, "
         "SUM(tests_order.margin) AS margin_sum "
         "FROM tests_order "
         "GROUP BY time__year, time__week, time__epoch "
         "ORDER BY time__epoch ASC"
     )
     self.assertEqual(expected_query, query.get_sql())
     rows = query.select()
     self.assertEqual(1, len(rows))
     week_dt = datetime.datetime(2012, 10, 19)
     week_unix_time = unix_time(floor(week_dt, week=1))
     self.assertEqual(825.0, rows[0]['margin_sum'])
     self.assertEqual(week_unix_time, rows[0]['time__epoch'])
     self.assertEqual(2012, rows[0]['time__year'])
     self.assertEqual(42, rows[0]['time__week'])
开发者ID:AlexandrPaveluc,项目名称:django-query-builder,代码行数:29,代码来源:field_tests.py


示例14: test_num_stddev

    def test_num_stddev(self):
        query = Query().from_table(
            table=Order,
            fields=[
                '*',
                NumStdDevField(
                    'margin',
                    over=QueryWindow()
                )
            ]
        ).order_by(
            '-margin_num_stddev'
        )

        query_str = query.get_sql()
        expected_query = (
            'SELECT tests_order.*, '
            '(CASE WHEN (STDDEV(tests_order.margin) OVER ()) <> 0 '
            'THEN ((tests_order.margin - ('
            'AVG(tests_order.margin) OVER ())) / (STDDEV(tests_order.margin) OVER ())) '
            'ELSE 0 '
            'END) '
            'AS "margin_num_stddev" '
            'FROM tests_order '
            'ORDER BY margin_num_stddev '
            'DESC'
        )
        self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:28,代码来源:window_tests.py


示例15: test_select_all_from_string

 def test_select_all_from_string(self):
     query = Query().from_table(
         table='test_table'
     )
     query_str = query.get_sql()
     expected_query = 'SELECT test_table.* FROM test_table'
     self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:7,代码来源:select_tests.py


示例16: test_inner_outer_args_many

    def test_inner_outer_args_many(self):
        inner_query = Query().from_table(
            Account
        ).where(
            Q(id__gt=1) & Q(id__lt=10)
        )

        inner_query2 = Query().from_table(
            Account
        ).where(
            Q(id__gt=1) & Q(id__lt=10)
        )

        query = Query().from_table(
            inner_query
        ).from_table(
            inner_query2
        ).where(
            ~Q(id=0)
        )

        query_str = query.get_sql()
        expected_query = (
            'WITH T1 AS '
            '(SELECT tests_account.* FROM tests_account WHERE (id > %(T1A0)s AND id < %(T1A1)s)), '
            'T0 AS ('
            'SELECT tests_account.* '
            'FROM tests_account '
            'WHERE (id > %(T0A0)s AND id < %(T0A1)s)) '
            'SELECT T0.*, T1.* '
            'FROM T0, T1 '
            'WHERE ((NOT(id = %(A0)s)))'
        )
        self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:34,代码来源:select_tests.py


示例17: test_cannot_mix_distincts

    def test_cannot_mix_distincts(self):
        query = Query().from_table(
            table=Account
        ).distinct_on('field1').distinct()

        with self.assertRaises(ValueError):
            query.get_sql()
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:7,代码来源:select_tests.py


示例18: test_limit

 def test_limit(self):
     query = Query().from_table(
         table='test_table'
     ).limit(10)
     query_str = query.get_sql()
     expected_query = 'SELECT test_table.* FROM test_table LIMIT 10'
     self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:AlexandrPaveluc,项目名称:django-query-builder,代码行数:7,代码来源:limit_tests.py


示例19: test_rank

 def test_rank(self):
     query = Query().from_table(
         table=Order,
         fields=[
             'id',
             RankField(
                 over=QueryWindow().partition_by(
                     'account_id'
                 ).order_by(
                     'id'
                 )
             )
         ]
     ).order_by(
         '-rank'
     )
     query_str = query.get_sql()
     expected_query = (
         'SELECT tests_order.id, '
         'RANK() OVER (PARTITION BY account_id ORDER BY id ASC) AS "rank" '
         'FROM tests_order '
         'ORDER BY rank '
         'DESC'
     )
     self.assertEqual(query_str, expected_query, get_comparison_str(query_str, expected_query))
开发者ID:ambitioninc,项目名称:django-query-builder,代码行数:25,代码来源:window_tests.py


示例20: test_single_model

    def test_single_model(self):
        query = Query().from_table(Account)
        rows = query.select(True)

        self.assertGreater(len(rows), 0, "No records")

        for row in rows:
            self.assertIsInstance(row, Account, "Row is not model instance")
开发者ID:mypebble,项目名称:django-query-builder,代码行数:8,代码来源:select_tests.py



注:本文中的querybuilder.query.Query类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python query_tests.get_comparison_str函数代码示例发布时间:2022-05-26
下一篇:
Python query_fixture.query_fixture函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap