本文整理汇总了Python中core.db.connection.DataHubConnection.limit_and_offset_select_query方法的典型用法代码示例。如果您正苦于以下问题:Python DataHubConnection.limit_and_offset_select_query方法的具体用法?Python DataHubConnection.limit_and_offset_select_query怎么用?Python DataHubConnection.limit_and_offset_select_query使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类core.db.connection.DataHubConnection
的用法示例。
在下文中一共展示了DataHubConnection.limit_and_offset_select_query方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from core.db.connection import DataHubConnection [as 别名]
# 或者: from core.db.connection.DataHubConnection import limit_and_offset_select_query [as 别名]
#.........这里部分代码省略.........
raise PermissionDenied(
'Either missing required privileges or bad query')
# check that they really do have permissions on the repo base.
# This is a bit paranoid, but only because I don't like giving users
# superuser privileges
res = DataHubManager.has_repo_privilege(
self.username, self.repo_base, repo, 'USAGE')
if not res:
raise PermissionDenied(
'Access denied. Missing required privileges.')
# create the repo if it doesn't already exist
DataHubManager.create_user_data_folder(self.repo_base, repo)
file_name = clean_file_name(card_name)
file_path = user_data_path(
self.repo_base, repo, file_name, file_format)
DataHubManager.export_query(repo_base=self.repo_base, query=query,
file_path=file_path,
file_format=file_format)
def delete_card(self, repo, card_name):
res = DataHubManager.has_repo_privilege(
self.username, self.repo_base, repo, 'USAGE')
if not res:
raise PermissionDenied(
'Access denied. Missing required privileges.')
card = Card.objects.get(repo_base=self.repo_base,
repo_name=repo, card_name=card_name)
return card.delete()
def limit_and_offset_select_query(self, query, limit, offset):
"""
Modifies select queries, adding limits and offsets.
Used primarily for pagination
"""
return self.user_con.limit_and_offset_select_query(
query=query, limit=limit, offset=offset)
def paginate_query(self, query, current_page, rows_per_page):
"""
Set variables for query pagination, limiting query statement
to just the section of the table that will be displayed
"""
explanation = self.explain_query(query)
num_rows = explanation['num_rows']
time_cost = explanation['time_cost']
byte_width = explanation['byte_width']
total_pages = 1 + (num_rows / rows_per_page)
# set first page that a user can navigate to
start_page = current_page - 5
if start_page < 1:
start_page = 1
# set the last page that a user can navigate to
end_page = start_page + 10
if end_page > total_pages:
end_page = total_pages
# set the offset
offset = (current_page - 1) * rows_per_page
示例2: __init__
# 需要导入模块: from core.db.connection import DataHubConnection [as 别名]
# 或者: from core.db.connection.DataHubConnection import limit_and_offset_select_query [as 别名]
#.........这里部分代码省略.........
# to export a card, the user must be able to successfully execute
# the query from their own database user.
try:
self.execute_sql(query)
except Exception:
raise PermissionDenied(
'Either missing required privileges or bad query')
# create the user data folder if it doesn't already exist
DataHubManager.create_user_data_folder(self.repo_base, repo)
file_name = clean_file_name(file_name)
file_path = user_data_path(
self.repo_base, repo, file_name, file_format)
self.user_con.export_query(query=query,
file_path=file_path,
file_format=file_format)
def delete_card(self, repo, card_name):
"""
Deletes a card from a repo.
Raises Card.DoesNotExist for invalid card_name.
Raises PermissionDenied on insufficient privileges.
"""
DataHubManager.has_repo_file_privilege(
self.username, self.repo_base, repo, 'write')
card = Card.objects.get(repo_base=self.repo_base,
repo_name=repo, card_name=card_name)
return card.delete()
def limit_and_offset_select_query(self, query, limit, offset):
"""
Modifies select queries, adding limits and offsets.
Used primarily for pagination
"""
return self.user_con.limit_and_offset_select_query(
query=query, limit=limit, offset=offset)
def paginate_query(self, query, current_page, rows_per_page):
"""
Set variables for query pagination, limiting query statement
to just the section of the table that will be displayed
"""
explanation = self.explain_query(query)
num_rows = explanation['num_rows']
time_cost = explanation['time_cost']
byte_width = explanation['byte_width']
total_pages = 1 + (num_rows / rows_per_page)
# set first page that a user can navigate to
start_page = current_page - 5
if start_page < 1:
start_page = 1
# set the last page that a user can navigate to
end_page = start_page + 10
if end_page > total_pages:
end_page = total_pages
# set the offset
offset = (current_page - 1) * rows_per_page