SeaTable
  • Funções
  • Modelos
  • Soluções
    • Marketing - A próxima campanha de marketing está prestes a chegar. Nada é mais fácil do que isso.
    • Gestão de projectos - Planear, seguir e gerir projectos de equipa do princípio ao fim.
    • Recursos Humanos - Estruturar processos de RH para novas contratações e a bordo.
    • Distribuição - Gerir todo o seu canal de vendas e relações com clientes num só local.
    • Desenvolvimento de software - Aumente a qualidade e rapidez da sua equipa de desenvolvimento com SeaTable.
  • Apoio
    • Guia rápido - Tudo o que precisa de saber para pôr o SeaTable a funcionar em minutos.
    • Área de ajuda - Encontre respostas às suas perguntas e obtenha dicas sobre como tirar o máximo partido da SeaTable.
    • Integrações - Ligar SeaTable com ferramentas como Zapier, Integromat ou n8n. Ou utilizar o API do SeaTable.
    • Blog SeaTable - Aqui encontrará informação sobre produtos, notícias e muitos exemplos de como pode utilizar o SeaTable de forma óptima.
  • Preços
  • Login
  • login
  • Inscrição
  • Menu Menu

JavaScript & Python

  • Diferenças entre JavaScript e Python scripts em SeaTable
  • Criação e eliminação de um guião
  • Importação e exportação de um guião
  • Executar script manualmente, por botão ou por automatização
  • O registo de execução dos guiões
  • Exemplo de JavaScript: Definir uma caixa de verificação, remover todas as outras
  • Exemplo Python: Criar algumas entradas aleatórias
  • Exemplo Python: Leitura da infra-estrutura de uma base
  • Bibliotecas Python suportadas
  • Início
  • Ajuda
  • Scripts, API e integrações
  • JavaScript & Python
  • Exemplo Python: Leitura da infra-estrutura de uma base

Exemplo Python: Leitura da infra-estrutura de uma base

Conteúdos
  • A infra-estrutura de uma base
  • O código Python para a leitura da infra-estrutura
  • Transformar a infra-estrutura em outra forma
  • Adição de links
  • O guião completo

Este artigo apresenta-lhe um script Python que produz a meta-estrutura completa de uma base. Isto é útil, por exemplo, se tiver uma pergunta sobre uma base no fórum da comunidade e quiser descrever a estrutura da sua base de forma rápida e fácil sem capturas de ecrã.

A infra-estrutura de uma base

A meta-estrutura de uma base descreve as tabelas, colunas e vistas de uma base. As entradas e os registos nas linhas não estão incluídos na meta-estrutura. A seguinte estrutura JSON descreve uma base comparativamente simples com apenas uma tabela, duas colunas e uma vista.

{
  "metadata": {
    "tables": [
      {
        "_id": "0000",
        "name": "Table1",
        "columns": [
          {
            "key": "0000",
            "name": "Name",
            "type": "text",
            "width": 200,
            "editable": true,
            "resizable": true
          },
          {
            "key": "BydO",
            "type": "date",
            "name": "Date",
            "editable": true,
            "width": 200,
            "resizable": true,
            "draggable": true,
            "data": {
              "format": "YYYY-MM-DD"
            },
            "permission_type": "",
            "permitted_users": []
          }
        ],
        "views": [
          {
            "_id": "0000",
            "name": "Default View",
            "type": "table",
            "is_locked": false,
            "rows": [],
            "formula_rows": {},
            "summaries": [],
            "filters": [],
            "sorts": [],
            "hidden_columns": [],
            "groupbys": [],
            "groups": []
          }
        ]
      }
    ],
    "version": 482,
    "format_version": 7,
    "settings": {
      "securities": {
        "table_settings": {
          "can_copy": false,
          "can_export": false,
          "can_print": false
        },
        "share_user_settings": {
          "can_copy": false,
          "can_export": false,
          "can_print": false
        }
      }
    }
  }
}

É claro que este código não é prático quando se pede ajuda no fórum da comunidade, pelo que a estrutura desta tabela deve ser reduzida às linhas seguintes.

--- COMPLETE BASE STRUCTURE WITH ALL BASES AND COLUMNS ---
Table: Table1 (ID: 0000)
--> Name (text)

Pode descobrir exactamente como isto funciona neste artigo.

Se quiser saber mais sobre Python
Existem inúmeras instruções, tutoriais e ajuda na Internet sobre Python. No entanto, um bom ponto de partida é certamente o sítio Web oficial do Python, que também oferece uma coleção de tutoriais para principiantes.

O código Python para a leitura da infra-estrutura

Em SeaTable, apenas algumas linhas de código Python são suficientes para obter a infra-estrutura de uma base. Especificamente, algumas linhas são suficientes para autenticação e uma linha para a infra-estrutura de metragem.

from seatable_api import Base, context
base = Base(context.api_token, context.server_url)
base.auth()
metadata = base.get_metadata()
print(metadata)

No entanto, o resultado ou a produção da infra-estrutura é tudo menos fácil de utilizar.

{'tables': [{'_id': '0000', 'name': 'Table1', 'columns': [{'key': '0000', 'name': 'Name', 'type': 'text', 'width': 200, 'editable': True, 'resizable': True}], 'views': [{'_id': '0000', 'name': 'Default View', 'type': 'table', 'is_locked': False, 'rows': [], 'formula_rows': {}, 'summaries': [], 'filter_conjunction': 'And', 'filters': [], 'sorts': [], 'hidden_columns': [], 'groupbys': [], 'groups': []}]}], 'version': 13, 'format_version': 9, 'scripts': [{'name': 'Untitled', 'url': '/scripts/zkon.py', '_id': 'zkon', 'type': 'Python'}]}

Transformar a infra-estrutura em outra forma

A variável metadados armazena agora toda a meta-estrutura com todos os seus elementos em formato JSON. O SeaTable e o Python oferecem, naturalmente, possibilidades para percorrer estas estruturas e interagir com elas.
Com as linhas seguintes, a meta-estrutura pode ser colocada na forma desejada.

print("--- COMPLETE BASE STRUCTURE WITH ALL BASES AND COLUMNS ---")
for table in metadata['tables']:
  print('.')
  print("Table: "+table['name']+" (ID: "+table['_id']+")") 
  for column in table['columns']:
    print("  --> "+column['name']+" ("+column['type']+")")

O que acontece aqui exatamente? Primeiro, damos instruções ao Python para criar todas as tabelas com um for-loop. De seguida, introduz-se o número com print o nome da tabela e o seu ID. Aqui também pode ver como aceder aos elementos individuais com os parênteses rectos.

Repetir o mesmo para as colunas. Através das for-loop, todas as colunas da respectiva tabela são produzidas.

Indentações de notas em Python
Em Python, a indentação de linha é usada para estruturar o código. Isto mantém o código curto e claro. Portanto, você deve prestar muita atenção às indentações, pois elas determinam onde o loop for termina.

Adição de links

Agora está quase lá. Já podia utilizar a meta-estrutura tão bem, mas uma fraqueza do guião anterior é que, com as colunas de ligação, não é óbvio para onde se ligam exatamente. Por isso, substitua as duas últimas colunas pelo seguinte código:

  for column in table['columns']:
    link_target = ""
    if column['type'] == "link":
      link_target = " --> "+column['data']['other_table_id']
      if column['data']['other_table_id'] == table['_id']:
        link_target = " --> "+column['data']['table_id']
    print("  --> "+column['name']+" ("+column['type']+")")

O guião completo

O script completo pode ser executado diretamente em qualquer base SeaTable sem quaisquer ajustes. Servir-lhe-á bem se quiser descrever a estrutura da sua base no fórum da comunidade.

from seatable_api import Base, context
base = Base(context.api_token, context.server_url)
base.auth()

metadata = base.get_metadata()

print("--- COMPLETE BASE STRUCTURE WITH ALL BASES AND COLUMNS ---")
for table in metadata['tables']:
  print('.')
  print("Table: "+table['name']+" (ID: "+table['_id']+")") 
  for column in table['columns']:
    link_target = ""
    if column['type'] == "link":
      link_target = " --> "+column['data']['other_table_id']
      if column['data']['other_table_id'] == table['_id']:
        link_target = " --> "+column['data']['table_id']
    print("  --> "+column['name']+" ("+column['type']+link_target+")")

Em que medida foi útil este artigo?
Atualizado em 25 de julho de 2023
Exemplo Python: Criar algumas entradas aleatóriasBibliotecas Python suportadas
Conteúdos
  • A infra-estrutura de uma base
  • O código Python para a leitura da infra-estrutura
  • Transformar a infra-estrutura em outra forma
  • Adição de links
  • O guião completo
Logotipo SeaTable

Faça-o como milhares de outras pessoas que utilizam SeaTable para desenvolver processos poderosos, trazer ordem aos seus dados e completar as suas tarefas de forma mais eficiente.

SeaTable no Linkedin SeaTable em Medium.com SeaTable na Instagram SeaTable no Twitter SeaTable em Github SeaTable no YouTube SeaTable em Docker Hub

Produtos

  • SeaTable Cloud
  • SeaTable Dedicado
  • Servidor SeaTable
  • Apoio

Apoio

  • Guia rápido
  • Área de ajuda
  • Modelos
  • Integrações
  • Fórum
  • API do programador
  • Estado

Empresa

  • Sobre nós
  • Nós contratamos
  • Imprensa
  • Contacto
  • Blog
  • Impressão
  • Segurança
  • Protecção de dados
  • Termos de utilização
  • EULA
Percorrer para cima
  • Deutsch
  • English
  • Français
  • Español
  • Русский