TableClient الفصل
عميل للتفاعل مع جدول معين في حساب Azure Tables.
إنشاء TableClient من بيانات اعتماد.
- توريث
-
azure.data.tables._base_client.TablesBaseClientTableClient
الدالمنشئ
TableClient(endpoint: str, table_name: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)
المعلمات
- credential
- AzureNamedKeyCredential أو AzureSasCredential أو TokenCredential أو None
بيانات الاعتماد التي يجب المصادقة بها. هذا اختياري إذا كان عنوان URL للحساب يحتوي بالفعل على رمز SAS المميز. يمكن أن تكون القيمة واحدة من AzureNamedKeyCredential (azure-core) أو AzureSasCredential (azure-core) أو تنفيذ TokenCredential من azure-identity.
- api_version
- str
يحدد إصدار العملية المراد استخدامها لهذا الطلب. القيمة الافتراضية هي "2019-02-02".
المتغيرات
- account_name
- str
اسم حساب الجداول.
- table_name
- str
اسم الجدول.
- scheme
- str
مكون النظام في عنوان URL الكامل لحساب الجداول.
- url
- str
نقطة نهاية التخزين.
- api_version
- str
إصدار واجهة برمجة تطبيقات الخدمة.
الأساليب
close |
هذا الأسلوب هو إغلاق مآخذ التوصيل التي فتحها العميل. لا يلزم استخدامه عند استخدام مع مدير سياق. |
create_entity |
إدراج كيان في جدول. |
create_table |
إنشاء جدول جديد ضمن الحساب الحالي. |
delete_entity |
حذف الكيان المحدد في جدول. لن يتم رفع أي خطأ إذا لم يتم العثور على الكيان أو PartitionKey-RowKey الاقتران. |
delete_table |
حذف الجدول ضمن الحساب الحالي. لن يتم رفع أي خطأ إذا لم يكن الجدول موجودا |
from_connection_string |
إنشاء TableClient من سلسلة اتصال. |
from_table_url |
عميل للتفاعل مع جدول معين. AzureSasCredential (azure-core)، أو تطبيق TokenCredential من azure-identity. بيانات اعتماد :p aramtype: ~azure.core.credentials.AzureNamedKeyCredential أو ~azure.core.credentials.AzureSasCredential أو None |
get_entity |
احصل على كيان واحد في جدول. |
get_table_access_policy |
استرداد تفاصيل حول أي نهج وصول مخزنة محددة في الجدول والتي يمكن استخدامها مع توقيعات الوصول المشترك. |
list_entities |
يسرد الكيانات في جدول. |
query_entities |
يسرد الكيانات في جدول. |
set_table_access_policy |
تعيين نهج الوصول المخزنة للجدول الذي يمكن استخدامه مع توقيعات الوصول المشترك. |
submit_transaction |
قم بتنفيذ قائمة بالعمليات كمعاملة واحدة. إذا فشلت أي من هذه العمليات، فسيتم رفض المعاملة بأكملها. |
update_entity |
تحديث الكيان في جدول. |
upsert_entity |
تحديث/دمج أو إدراج كيان في جدول. |
close
هذا الأسلوب هو إغلاق مآخذ التوصيل التي فتحها العميل. لا يلزم استخدامه عند استخدام مع مدير سياق.
close() -> None
create_entity
إدراج كيان في جدول.
create_entity(entity: TableEntity | Mapping[str, Any], **kwargs) -> Dict[str, Any]
المعلمات
المرتجعات
بيانات تعريف عملية تعيين القاموس التي تم إرجاعها من الخدمة
نوع الإرجاع
استثناءات
أمثلة
إنشاء كيان وإضافته إلى جدول
try:
resp = table_client.create_entity(entity=self.entity)
print(resp)
except ResourceExistsError:
print("Entity already exists")
create_table
إنشاء جدول جديد ضمن الحساب الحالي.
create_table(**kwargs) -> TableItem
المرتجعات
TableItem يمثل الجدول الذي تم إنشاؤه.
نوع الإرجاع
استثناءات
إذا كان الكيان موجودا بالفعل
أمثلة
إنشاء جدول من عنصر TableClient
with TableClient.from_connection_string(
conn_str=self.connection_string, table_name=self.table_name
) as table_client:
try:
table_item = table_client.create_table()
print("Created table {}!".format(table_item.name))
except ResourceExistsError:
print("Table already exists")
delete_entity
حذف الكيان المحدد في جدول. لن يتم رفع أي خطأ إذا لم يتم العثور على الكيان أو PartitionKey-RowKey الاقتران.
delete_entity(partition_key: str, row_key: str, **kwargs) -> None
المعلمات
- etag
- str
Etag للكيان
- match_condition
- MatchConditions
الشرط الذي يجب تنفيذ العملية بموجبه. تتضمن القيم المدعومة: MatchConditions.IfNotModified, MatchConditions.Unconditionally. القيمة الافتراضية هي بلا قيد أو شرط.
المرتجعات
بلا
استثناءات
أمثلة
حذف كيان من جدول
table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])
print("Successfully deleted!")
delete_table
حذف الجدول ضمن الحساب الحالي. لن يتم رفع أي خطأ إذا لم يكن الجدول موجودا
delete_table(**kwargs) -> None
المرتجعات
بلا
استثناءات
أمثلة
حذف جدول من عنصر TableClient
with TableClient.from_connection_string(
conn_str=self.connection_string, table_name=self.table_name
) as table_client:
table_client.delete_table()
print("Deleted table {}!".format(table_client.table_name))
from_connection_string
إنشاء TableClient من سلسلة اتصال.
from_connection_string(conn_str: str, table_name: str, **kwargs) -> TableClient
المعلمات
المرتجعات
عميل جدول.
نوع الإرجاع
أمثلة
مصادقة TableServiceClient من connection_string
from azure.data.tables import TableClient
with TableClient.from_connection_string(
conn_str=self.connection_string, table_name="tableName"
) as table_client:
print("Table name: {}".format(table_client.table_name))
from_table_url
عميل للتفاعل مع جدول معين.
AzureSasCredential (azure-core)، أو تطبيق TokenCredential من azure-identity. بيانات اعتماد :p aramtype:
~azure.core.credentials.AzureNamedKeyCredential أو ~azure.core.credentials.AzureSasCredential أو None
from_table_url(table_url: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | None = None, **kwargs) -> TableClient
المعلمات
- table_url
المرتجعات
عميل جدول.
نوع الإرجاع
get_entity
احصل على كيان واحد في جدول.
get_entity(partition_key: str, row_key: str, **kwargs) -> TableEntity
المعلمات
المرتجعات
بيانات تعريف عملية تعيين القاموس التي تم إرجاعها من الخدمة
نوع الإرجاع
استثناءات
أمثلة
الحصول على كيان واحد من جدول
# Get Entity by partition and row key
got_entity = table.get_entity(partition_key=my_entity["PartitionKey"], row_key=my_entity["RowKey"])
print("Received entity: {}".format(got_entity))
get_table_access_policy
استرداد تفاصيل حول أي نهج وصول مخزنة محددة في الجدول والتي يمكن استخدامها مع توقيعات الوصول المشترك.
get_table_access_policy(**kwargs) -> Dict[str, TableAccessPolicy | None]
المرتجعات
قاموس النماذج الموقعة
نوع الإرجاع
استثناءات
list_entities
يسرد الكيانات في جدول.
list_entities(**kwargs) -> ItemPaged[TableEntity]
المعلمات
- results_per_page
- int
عدد الكيانات التي تم إرجاعها لكل طلب خدمة.
المرتجعات
مكرر ل TableEntity
نوع الإرجاع
استثناءات
أمثلة
سرد جميع الكيانات الموجودة داخل جدول
# Query the entities in the table
entities = list(table.list_entities())
for i, entity in enumerate(entities):
print("Entity #{}: {}".format(entity, i))
query_entities
يسرد الكيانات في جدول.
query_entities(query_filter: str, **kwargs) -> ItemPaged[TableEntity]
المعلمات
- query_filter
- str
حدد عامل تصفية لإرجاع كيانات معينة. لمزيد من المعلومات حول تنسيق عامل التصفية، راجع وثائق العينات.
- results_per_page
- int
عدد الكيانات التي تم إرجاعها لكل طلب خدمة.
المرتجعات
مكرر ل TableEntity
نوع الإرجاع
استثناءات
أمثلة
كيانات الاستعلام المحتفظ بها داخل جدول
with TableClient.from_connection_string(self.connection_string, self.table_name) as table_client:
try:
print("Basic sample:")
print("Entities with name: marker")
parameters = {"name": "marker"}
name_filter = "Name eq @name"
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Brand", "Color"], parameters=parameters
)
for entity_chosen in queried_entities:
print(entity_chosen)
print("Sample for querying entities withtout metadata:")
print("Entities with name: marker")
parameters = {"name": "marker"}
name_filter = "Name eq @name"
headers = {"Accept": "application/json;odata=nometadata"}
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Brand", "Color"], parameters=parameters, headers=headers
)
for entity_chosen in queried_entities:
print(entity_chosen)
print("Sample for querying entities with multiple params:")
print("Entities with name: marker and brand: Crayola")
parameters = {"name": "marker", "brand": "Crayola"}
name_filter = "Name eq @name and Brand eq @brand"
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Brand", "Color"], parameters=parameters
)
for entity_chosen in queried_entities:
print(entity_chosen)
print("Sample for querying entities' values:")
print("Entities with 25 < Value < 50")
parameters = {"lower": 25, "upper": 50} # type: ignore
name_filter = "Value gt @lower and Value lt @upper"
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Value"], parameters=parameters
)
for entity_chosen in queried_entities:
print(entity_chosen)
except HttpResponseError as e:
raise
set_table_access_policy
تعيين نهج الوصول المخزنة للجدول الذي يمكن استخدامه مع توقيعات الوصول المشترك.
set_table_access_policy(signed_identifiers: Dict[str, TableAccessPolicy | None], **kwargs) -> None
المعلمات
المرتجعات
بلا
استثناءات
submit_transaction
قم بتنفيذ قائمة بالعمليات كمعاملة واحدة.
إذا فشلت أي من هذه العمليات، فسيتم رفض المعاملة بأكملها.
submit_transaction(operations: Iterable[Tuple[TransactionOperation | str, TableEntity | Mapping[str, Any]] | Tuple[TransactionOperation | str, TableEntity | Mapping[str, Any], Mapping[str, Any]]], **kwargs) -> List[Mapping[str, Any]]
المعلمات
قائمة العمليات المراد تنفيذها في معاملة. يجب أن يكون هذا قابلا للتكتم من المجموعات التي تحتوي على اسم عملية، والكيان الذي سيتم العمل عليه، واختياريا، لوحة من الكوارس الإضافية لتلك العملية. على سبيل المثال:
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'})
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'}, {'mode': UpdateMode.REPLACE})
المرتجعات
قائمة بالتعيينات مع بيانات تعريف الاستجابة لكل عملية في المعاملة.
نوع الإرجاع
استثناءات
أمثلة
استخدام المعاملات لإرسال طلبات متعددة في وقت واحد
from azure.data.tables import TableClient, TableTransactionError
from azure.core.exceptions import ResourceExistsError
self.table_client = TableClient.from_connection_string(
conn_str=self.connection_string, table_name=self.table_name
)
try:
self.table_client.create_table()
print("Created table")
except ResourceExistsError:
print("Table already exists")
self.table_client.upsert_entity(entity2)
self.table_client.upsert_entity(entity3)
self.table_client.upsert_entity(entity4)
operations = [
("upsert", entity1),
("delete", entity2),
("upsert", entity3),
("update", entity4, {"mode": "replace"}),
]
try:
self.table_client.submit_transaction(operations) # type: ignore[arg-type]
except TableTransactionError as e:
print("There was an error with the transaction operation")
print(e)
update_entity
تحديث الكيان في جدول.
update_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
المعلمات
- etag
- str
Etag للكيان
- match_condition
- MatchConditions
الشرط الذي يجب تنفيذ العملية بموجبه. تتضمن القيم المدعومة: MatchConditions.IfNotModified, MatchConditions.Unconditionally. القيمة الافتراضية هي بلا قيد أو شرط.
المرتجعات
بيانات تعريف عملية تعيين القاموس التي تم إرجاعها من الخدمة
نوع الإرجاع
استثناءات
أمثلة
تحديث كيان تم إنهاءه بالفعل في جدول
# Update the entity
created["text"] = "NewMarker"
table.update_entity(mode=UpdateMode.REPLACE, entity=created)
# Get the replaced entity
replaced = table.get_entity(partition_key=created["PartitionKey"], row_key=created["RowKey"])
print("Replaced entity: {}".format(replaced))
# Merge the entity
replaced["color"] = "Blue"
table.update_entity(mode=UpdateMode.MERGE, entity=replaced)
# Get the merged entity
merged = table.get_entity(partition_key=replaced["PartitionKey"], row_key=replaced["RowKey"])
print("Merged entity: {}".format(merged))
upsert_entity
تحديث/دمج أو إدراج كيان في جدول.
upsert_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
المعلمات
المرتجعات
بيانات تعريف عملية تعيين القاموس التي تم إرجاعها من الخدمة
نوع الإرجاع
استثناءات
أمثلة
تحديث/دمج كيان أو إدراجه في جدول
# Try Replace and insert on fail
insert_entity = table.upsert_entity(mode=UpdateMode.REPLACE, entity=entity1)
print("Inserted entity: {}".format(insert_entity))
created["text"] = "NewMarker"
merged_entity = table.upsert_entity(mode=UpdateMode.MERGE, entity=entity)
print("Merged entity: {}".format(merged_entity))
السمات
api_version
إصدار واجهة برمجة تطبيقات التخزين المستخدمة للطلبات.
المرتجعات
إصدار واجهة برمجة تطبيقات التخزين.
url
عنوان URL الكامل لنقطة النهاية لهذا الكيان، بما في ذلك رمز SAS المميز إذا تم استخدامه.
قد تكون هذه إما نقطة النهاية الأساسية، أو نقطة النهاية الثانوية اعتمادا على الحالية <xref:azure.data.tables.location_mode>.
المرتجعات
عنوان URL الكامل لنقطة النهاية بما في ذلك رمز SAS المميز إذا تم استخدامه.
نوع الإرجاع
Azure SDK for Python