Example #1
0
    def __init__(self, cursor, query: str, rows_per_page=10, current_page=1):
        """
        :param cursor: connection.cursor()
        :param query: the query without the limit command
        :param rows_per_page:
        :param current_page: 1-index (first page is 1)
        :return:
        """
        self.backend = DbNorm.get_backend_engine()

        self.cursor = cursor
        self.query = query
        self.rows_per_page = Str.int_val(rows_per_page, 10)
        self.current_page = Str.int_val(current_page, 1)

        self.count()

        if self.row_count > 0:
            self.page_count = math.ceil(self.row_count / rows_per_page)
Example #2
0
    def convert_to_int(cls, str_list):
        """
        Convert a list of string into a list of int
        :param str_list: ["1", "2.99", "0.11"] => [1, 3, 0]
        :return: []
        """
        if not str_list:
            return []

        int_list = []
        for s in str_list:
            val = Str.int_val(s, None)
            if val is not None:
                int_list.append(val)

        return int_list
Example #3
0
    def get_page_query(self, page_number):
        """
        Get the mysql query for the specified page.
        :param page_number: 1-index (first page is 1)
        :return:
        """
        # [LIMIT {[offset,] row_count | row_count OFFSET offset}]

        page_number = Str.int_val(page_number, 1)

        if page_number <= 0:
            page_number = 1
        elif self.row_count > 0 and page_number > self.page_count:
            page_number = self.page_count

        offset = (page_number - 1) * self.rows_per_page
        row_count = self.rows_per_page

        db_norm = DbNorm.get_db_normalizer()
        limit_query = db_norm.limit(offset, row_count)
        query = '%s %s' % (self.query, limit_query)
        return query