TableClient Třída
Klient pro interakci s konkrétní tabulkou v účtu Azure Tables.
Vytvořte TableClient z přihlašovacích údajů.
- Dědičnost
-
azure.data.tables._base_client.TablesBaseClientTableClient
Konstruktor
TableClient(endpoint: str, table_name: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)
Parametry
- credential
- AzureNamedKeyCredential nebo AzureSasCredential nebo TokenCredential nebo None
Přihlašovací údaje, pomocí kterých se má ověřit. Tato možnost je volitelná, pokud adresa URL účtu už token SAS má. Hodnota může být jedna z azureNamedKeyCredential (azure-core), AzureSasCredential (azure-core) nebo TokenCredential implementace z azure-identity.
- api_version
- str
Určuje verzi operace, která se má použít pro tento požadavek. Výchozí hodnota je "2019-02-02".
Proměnné
- account_name
- str
Název účtu Tabulky.
- table_name
- str
Název tabulky.
- scheme
- str
Komponenta schématu v úplné adrese URL účtu Tables.
- url
- str
Koncový bod úložiště.
- api_version
- str
Verze rozhraní API služby.
Metody
close |
Tato metoda slouží k zavření soketů otevřených klientem. Nemusí se používat při použití se správcem kontextu. |
create_entity |
Vložení entity do tabulky |
create_table |
Vytvoří novou tabulku pod aktuálním účtem. |
delete_entity |
Odstraní zadanou entitu v tabulce. Pokud se nenajde párování entity nebo PartitionKey-RowKey, nevyvolá se žádná chyba. |
delete_table |
Odstraní tabulku pod aktuálním účtem. Pokud tabulka neexistuje, nebude vyvolána žádná chyba. |
from_connection_string |
Vytvořte TableClient z připojovacího řetězce. |
from_table_url |
Klient pro interakci s konkrétní tabulkou. AzureSasCredential (azure-core) nebo implementace TokenCredential z azure-identity. přihlašovací údaje :p aramtype: ~azure.core.credentials.AzureNamedKeyCredential nebo ~azure.core.credentials.AzureSasCredential nebo None |
get_entity |
Získání jedné entity v tabulce |
get_table_access_policy |
Načte podrobnosti o všech uložených zásadách přístupu zadaných v tabulce, které se dají použít se sdílenými přístupovými podpisy. |
list_entities |
Zobrazí seznam entit v tabulce. |
query_entities |
Zobrazí seznam entit v tabulce. |
set_table_access_policy |
Nastaví uložené zásady přístupu pro tabulku, která se může použít se sdílenými přístupovými podpisy. |
submit_transaction |
Potvrzení seznamu operací jako jedné transakce Pokud některá z těchto operací selže, celá transakce bude odmítnuta. |
update_entity |
Aktualizujte entitu v tabulce. |
upsert_entity |
Aktualizace nebo sloučení nebo vložení entity do tabulky |
close
Tato metoda slouží k zavření soketů otevřených klientem. Nemusí se používat při použití se správcem kontextu.
close() -> None
create_entity
Vložení entity do tabulky
create_entity(entity: TableEntity | Mapping[str, Any], **kwargs) -> Dict[str, Any]
Parametry
Návraty
Metadata operace mapování slovníku vrácená ze služby
Návratový typ
Výjimky
Příklady
Vytvoření a přidání entity do tabulky
try:
resp = table_client.create_entity(entity=self.entity)
print(resp)
except ResourceExistsError:
print("Entity already exists")
create_table
Vytvoří novou tabulku pod aktuálním účtem.
create_table(**kwargs) -> TableItem
Návraty
A TableItem představující vytvořenou tabulku.
Návratový typ
Výjimky
Pokud entita již existuje
Příklady
Vytvoření tabulky z objektu 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
Odstraní zadanou entitu v tabulce. Pokud se nenajde párování entity nebo PartitionKey-RowKey, nevyvolá se žádná chyba.
delete_entity(partition_key: str, row_key: str, **kwargs) -> None
Parametry
- etag
- str
Značka Etag entity
- match_condition
- MatchConditions
Podmínka, za které se má operace provést. Mezi podporované hodnoty patří: MatchConditions.IfNotModified, MatchConditions.Bezpodmínečně. Výchozí hodnota je Bezpodmínečně.
Návraty
Žádné
Výjimky
Příklady
Odstranění entity tabulky
table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])
print("Successfully deleted!")
delete_table
Odstraní tabulku pod aktuálním účtem. Pokud tabulka neexistuje, nebude vyvolána žádná chyba.
delete_table(**kwargs) -> None
Návraty
Žádné
Výjimky
Příklady
Odstranění tabulky z objektu 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
Vytvořte TableClient z připojovacího řetězce.
from_connection_string(conn_str: str, table_name: str, **kwargs) -> TableClient
Parametry
Návraty
Klient tabulky.
Návratový typ
Příklady
Ověřování klienta TableServiceClient ze 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
Klient pro interakci s konkrétní tabulkou.
AzureSasCredential (azure-core) nebo implementace TokenCredential z azure-identity. přihlašovací údaje :p aramtype:
~azure.core.credentials.AzureNamedKeyCredential nebo ~azure.core.credentials.AzureSasCredential nebo None
from_table_url(table_url: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | None = None, **kwargs) -> TableClient
Parametry
- table_url
Návraty
Klient tabulky.
Návratový typ
get_entity
Získání jedné entity v tabulce
get_entity(partition_key: str, row_key: str, **kwargs) -> TableEntity
Parametry
Návraty
Metadata operace mapování slovníku vrácená ze služby
Návratový typ
Výjimky
Příklady
Získání jedné entity z tabulky
# 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
Načte podrobnosti o všech uložených zásadách přístupu zadaných v tabulce, které se dají použít se sdílenými přístupovými podpisy.
get_table_access_policy(**kwargs) -> Dict[str, TableAccessPolicy | None]
Návraty
Slovník SignIdentifiers
Návratový typ
Výjimky
list_entities
Zobrazí seznam entit v tabulce.
list_entities(**kwargs) -> ItemPaged[TableEntity]
Parametry
- results_per_page
- int
Počet entit vrácených na žádost o službu
Návraty
Iterátor TableEntity
Návratový typ
Výjimky
Příklady
Výpis všech entit uložených v tabulce
# Query the entities in the table
entities = list(table.list_entities())
for i, entity in enumerate(entities):
print("Entity #{}: {}".format(entity, i))
query_entities
Zobrazí seznam entit v tabulce.
query_entities(query_filter: str, **kwargs) -> ItemPaged[TableEntity]
Parametry
- query_filter
- str
Zadejte filtr pro vrácení určitých entit. Další informace o formátování filtru najdete v dokumentaci k ukázce.
- results_per_page
- int
Počet entit vrácených na žádost o službu
Návraty
Iterátor TableEntity
Návratový typ
Výjimky
Příklady
Dotazování entit uložených v tabulce
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
Nastaví uložené zásady přístupu pro tabulku, která se může použít se sdílenými přístupovými podpisy.
set_table_access_policy(signed_identifiers: Dict[str, TableAccessPolicy | None], **kwargs) -> None
Parametry
Zásady přístupu, které se mají nastavit pro tabulku
Návraty
Žádné
Výjimky
submit_transaction
Potvrzení seznamu operací jako jedné transakce
Pokud některá z těchto operací selže, celá transakce bude odmítnuta.
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]]
Parametry
Seznam operací, které se mají potvrdit v transakci Mělo by se jednat o řazenou kolekci členů obsahující název operace, entitu, se kterou se má operace provádět, a volitelně i dikt dalších kwargů pro danou operaci. Příklad:
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'})
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'}, {'mode': UpdateMode.REPLACE})
Návraty
Seznam mapování s metadaty odpovědí pro každou operaci v transakci.
Návratový typ
Výjimky
Příklady
Použití transakcí k odesílání více požadavků najednou
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
Aktualizujte entitu v tabulce.
update_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Parametry
- etag
- str
Značka Etag entity
- match_condition
- MatchConditions
Podmínka, za které se má operace provést. Mezi podporované hodnoty patří: MatchConditions.IfNotModified, MatchConditions.Bezpodmínečně. Výchozí hodnota je Bezpodmínečně.
Návraty
Metadata operace mapování slovníku vrácená ze služby
Návratový typ
Výjimky
Příklady
Aktualizace již ukončující entity v tabulce
# 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
Aktualizace nebo sloučení nebo vložení entity do tabulky
upsert_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Parametry
Návraty
Metadata operace mapování slovníku vrácená ze služby
Návratový typ
Výjimky
Příklady
Aktualizace nebo sloučení nebo vložení entity do tabulky
# 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))
Atributy
api_version
Verze rozhraní API služby Storage, která se používá pro požadavky.
Návraty
Verze rozhraní API služby Storage.
url
Úplná adresa URL koncového bodu pro tuto entitu, včetně tokenu SAS, pokud je použit.
To může být primární koncový bod nebo sekundární koncový bod v závislosti na aktuálním <xref:azure.data.tables.location_mode>.
Návraty
Úplná adresa URL koncového bodu včetně tokenu SAS, pokud je použita.
Návratový typ
Azure SDK for Python