{"id":54291,"date":"2022-10-24T05:18:35","date_gmt":"2022-10-24T08:18:35","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=54291&#038;preview=true&#038;preview_id=54291"},"modified":"2025-02-07T11:21:04","modified_gmt":"2025-02-07T14:21:04","slug":"python-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/","title":{"rendered":"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress"},"content":{"rendered":"<p>WordPress tornou-se o sistema de gerenciamento de conte\u00fado (CMS) mais utilizado devido, em grande parte, \u00e0 sua interface de programa\u00e7\u00e3o de aplicativos (API). A <a href=\"https:\/\/kinsta.com\/pt\/blog\/wordpress-rest-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">API REST do WordPress<\/a> permite que o WordPress &#8220;fale&#8221; com outros aplicativos escritas em v\u00e1rias linguagens &#8211; incluindo Python.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/pt\/blog\/tutoriais-python\/#what-is-python\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> \u00e9 uma linguagem de programa\u00e7\u00e3o extens\u00edvel com diversos usos e uma sintaxe leg\u00edvel por humanos, tornando uma ferramenta poderosa para gerenciar remotamente o conte\u00fado do WordPress.<\/p>\n<p>Aqui est\u00e3o alguns casos de uso da API REST do WordPress para seus aplicativos e como voc\u00ea pode usar o Python para apoi\u00e1-los:<\/p>\n<ul>\n<li>Use modelos pr\u00e9-definidos para habilitar seu aplicativo para transformar dados brutos em artigos formatados com explica\u00e7\u00f5es rapidamente.<\/li>\n<li>Construa um aplicativo de back-office no Django e Python que exibe ofertas de tempo limitado para seus clientes toda vez que um desconto ou evento de vendas espec\u00edfico para um objeto ocorre.<\/li>\n<li>Integre scripts Python para rodar dentro do seu site WordPress<\/li>\n<\/ul>\n<p>Este tutorial ajudar\u00e1 voc\u00ea a criar um aplicativo simples de console Python que se comunica e executa opera\u00e7\u00f5es na API REST de WordPress. O c\u00f3digo completo do projeto tamb\u00e9m est\u00e1 dispon\u00edvel.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Instalando e configurando o WordPress<\/h2>\n<p>Primeiro, vamos instalar e rodar um site WordPress localmente na sua m\u00e1quina de desenvolvimento. Esta \u00e9 uma excelente maneira de come\u00e7ar com o WordPress, j\u00e1 que voc\u00ea n\u00e3o precisa criar uma conta ou comprar um nome de dom\u00ednio para hospedagem web.<\/p>\n<p>Antes de instalar o WordPress localmente, alguns componentes s\u00e3o necess\u00e1rios para rodar em seu computador, incluindo o servidor web Apache, um banco de dados local e a linguagem PHP na qual o WordPress \u00e9 escrito.<\/p>\n<p>Felizmente, podemos usar <a href=\"https:\/\/kinsta.com\/pt\/devkinsta\/\" target=\"_blank\" rel=\"noopener noreferrer\">DevKinsta<\/a>, uma su\u00edte de desenvolvimento WordPress local gratuita dispon\u00edvel para todos os principais sistemas operacionais (voc\u00ea n\u00e3o precisa ser um cliente Kinsta para us\u00e1-la).<\/p>\n<p>DevKinsta est\u00e1 dispon\u00edvel para Windows, Mac, e Linux, e instala o WordPress e todas \u00e0s suas depend\u00eancias na sua m\u00e1quina local.<\/p>\n<p>Antes de instalar o DevKinsta, voc\u00ea deve ter o Docker rodando localmente, ent\u00e3o baixe e <a href=\"https:\/\/docs.docker.com\/engine\/install\/\" target=\"_blank\" rel=\"noopener noreferrer\">instale o Docker Engine<\/a> se voc\u00ea ainda n\u00e3o o fez.<\/p>\n<p>Ap\u00f3s instalar o Docker Desktop, voc\u00ea pode <a href=\"https:\/\/kinsta.com\/pt\/devkinsta\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">baixar automaticamente<\/a> o pacote que se encaixa no seu sistema operacional.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 826px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-downloading-screen.png\" alt=\"P\u00e1gina de instala\u00e7\u00e3o DevKinsta\" width=\"826\" height=\"570\"><figcaption class=\"wp-caption-text\">P\u00e1gina de instala\u00e7\u00e3o DevKinsta<\/figcaption><\/figure><\/figure>\n<p>Quando voc\u00ea executa o instalador DevKinsta, o Docker come\u00e7a a se inicializar imediatamente:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 546px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-starting-Docker-screen.png\" alt=\"DevKinsta inicia o Docker localmente.\" width=\"546\" height=\"368\"><figcaption class=\"wp-caption-text\">DevKinsta inicia o Docker localmente.<\/figcaption><\/figure><\/figure>\n<p>Em seguida, escolha <strong>Novo site WordPress<\/strong> a partir do menu <strong>Criar novo site<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 905px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-create-new-WordPress-site-screen.png\" alt=\"Menu Criar Novo Site do DevKinsta\" width=\"905\" height=\"521\"><figcaption class=\"wp-caption-text\">Menu Criar Novo Site do DevKinsta<\/figcaption><\/figure><\/figure>\n<p>Agora o instalador DevKinsta requer que voc\u00ea crie \u00e0s credenciais para a conta de administrador do WordPress:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 501px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-new-WordPress-site-creation-screen.png\" alt=\"DevKinsta exibindo o formul\u00e1rio do novo site WordPress\" width=\"501\" height=\"463\"><figcaption class=\"wp-caption-text\">DevKinsta exibindo o formul\u00e1rio do novo site WordPress<\/figcaption><\/figure><\/figure>\n<p>Uma vez instalado, o DevKinsta \u00e9 um aplicativo aut\u00f4nomo. Agora voc\u00ea pode acessar tanto o site do WordPress (atrav\u00e9s do bot\u00e3o <strong>Abrir site<\/strong>) quanto o painel de controle do WordPress (bot\u00e3o <strong>WP Admin<\/strong>).<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 969px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-WordPress-site-info-screen.png\" alt=\"Painel informativo do site DevKinsta\" width=\"969\" height=\"550\"><figcaption class=\"wp-caption-text\">Painel informativo do site DevKinsta<\/figcaption><\/figure><\/figure>\n<p>A seguir, voc\u00ea precisa habilitar <a href=\"https:\/\/kinsta.com\/pt\/blog\/como-funciona-o-ssl\/\" target=\"_blank\" rel=\"noopener noreferrer\">SSL e HTTPS<\/a> para o seu site. Isso melhora a seguran\u00e7a do seu site atrav\u00e9s de um certificado SSL.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 969px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-SSL-and-HTTPS-option-screen.png\" alt=\"Op\u00e7\u00e3o \"SSL e HTTPS\" do DevKinsta\" width=\"969\" height=\"550\"><figcaption class=\"wp-caption-text\">Op\u00e7\u00e3o &#8220;SSL e HTTPS&#8221; do DevKinsta<\/figcaption><\/figure><\/figure>\n<p>Agora v\u00e1 para o aplicativo DevKinsta e clique no bot\u00e3o<strong> Abrir site<\/strong>. Uma nova aba do navegador ir\u00e1 mostrar a p\u00e1gina inicial do seu site WordPress:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 827px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-new-local-site-Hello-World.png\" alt=\"P\u00e1gina inicial do WordPress\" width=\"827\" height=\"612\"><figcaption class=\"wp-caption-text\">P\u00e1gina inicial do WordPress<\/figcaption><\/figure><\/figure>\n<p>Este \u00e9 o seu blog WordPress, onde voc\u00ea pode come\u00e7ar a escrever. Mas para habilitar o Python a acessar e usar a API REST do WordPress, precisamos primeiro configurar o WordPress Admin.<\/p>\n<p>Agora clique no bot\u00e3o <strong>WP Admin<\/strong> no aplicativo DevKinsta, ent\u00e3o forne\u00e7a seu usu\u00e1rio e senha para acessar o <strong>Painel de Controle do WordPress<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 357px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/WordPress-admin-dashboard-login-screen.png\" alt=\"Formul\u00e1rio de login WordPress.\" width=\"357\" height=\"385\"><figcaption class=\"wp-caption-text\">Formul\u00e1rio de login WordPress.<\/figcaption><\/figure><\/figure>\n<p>Uma vez conectado, voc\u00ea ver\u00e1 o <strong>Painel de Controle WordPress<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 989px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/welcome-to-WordPress-admin-screen.png\" alt=\"P\u00e1gina do Painel de Controle WordPress.\" width=\"989\" height=\"612\"><figcaption class=\"wp-caption-text\">P\u00e1gina do Painel de Controle WordPress.<\/figcaption><\/figure><\/figure>\n<p>O WordPress usa a autentica\u00e7\u00e3o de cookies como seu m\u00e9todo padr\u00e3o. Mas se voc\u00ea quiser control\u00e1-lo usando a API REST, voc\u00ea deve autenticar com uma t\u00e9cnica que concede acesso \u00e0 API REST do WordPress.<\/p>\n<p>Para isso, voc\u00ea usar\u00e1 <a href=\"https:\/\/make.wordpress.org\/core\/2020\/11\/05\/application-passwords-integration-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">Senhas de aplicativos<\/a>. Estas s\u00e3o strings longas de 24 caracteres que o WordPress gera e associa com um perfil de usu\u00e1rio com permiss\u00e3o para gerenciar seu site.<\/p>\n<p>Para usar Senhas de aplicativos, clique no menu <strong>Plugin<\/strong> no Painel, depois procure pelo plugin com o mesmo nome. Depois instale e ative o Plugin de Senhas de Aplicativos:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 752px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/WordPress-add-plugins-Application-Passwords.png\" alt=\"Plugin de senhas de aplicativos para WordPress\" width=\"752\" height=\"445\"><figcaption class=\"wp-caption-text\">Plugin de senhas de aplicativos para WordPress<\/figcaption><\/figure><\/figure>\n<p>Para come\u00e7ar a criar sua senha de aplicativo, comece expandindo o menu <strong>Usu\u00e1rios<\/strong> e clicando em <strong>Todos os Usu\u00e1rios<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 272px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/expanded-Users-WordPress-menu.png\" alt=\"Menu Usu\u00e1rios Expandidos\" width=\"272\" height=\"205\"><figcaption class=\"wp-caption-text\">Menu Usu\u00e1rios Expandidos<\/figcaption><\/figure><\/figure>\n<p>Agora, clique em <strong>Editar<\/strong>\u00a0abaixo do seu nome de usu\u00e1rio administrativo:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 1015px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/edit-screen-WordPress-user.png\" alt=\"Interface WP-Admin WordPress\" width=\"1015\" height=\"471\"><figcaption class=\"wp-caption-text\">Interface WP-Admin WordPress<\/figcaption><\/figure><\/figure>\n<p>Percorra a p\u00e1gina <strong>Editar Usu\u00e1rio<\/strong> e encontre a se\u00e7\u00e3o <strong>Senhas de aplicativos<\/strong>. Aqui, forne\u00e7a um nome para a Senha do aplicativo, que voc\u00ea usar\u00e1 mais tarde para autenticar suas solicita\u00e7\u00f5es de aplicativo Python e consumir a API REST:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 761px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Application-Passwords-plugin-dashboard.png\" alt=\"P\u00e1gina da senha do aplicativo\" width=\"761\" height=\"362\"><figcaption class=\"wp-caption-text\">P\u00e1gina da senha do aplicativo<\/figcaption><\/figure><\/figure>\n<p>Clique em <strong>Adicionar nova senha de aplicativo<\/strong>\u00a0para que o WordPress possa gerar uma senha aleat\u00f3ria de 24 caracteres para voc\u00ea:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 771px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Application-Passwords-new-password-page.png\" alt=\"P\u00e1gina da nova senha de aplicativo\" width=\"771\" height=\"110\"><figcaption class=\"wp-caption-text\">P\u00e1gina da nova senha de aplicativo<\/figcaption><\/figure><\/figure>\n<p>A seguir, copie esta senha e salve-a em um local seguro para us\u00e1-la mais tarde. Lembre-se, voc\u00ea n\u00e3o ser\u00e1 capaz de recuperar esta senha ap\u00f3s fechar esta p\u00e1gina.<\/p>\n<p>Finalmente, voc\u00ea deve configurar os permalinks. O WordPress permite que voc\u00ea crie uma estrutura de URL personalizada para seus permalinks e arquivos. Vamos mud\u00e1-la para que um artigo do WordPress intitulado, por exemplo, &#8220;Seu Primeiro site WordPress&#8221; possa ser acessado atrav\u00e9s da URL intuitiva https:\/\/your-website.local:port\/your-first-wordpress-website\/. Esta abordagem traz v\u00e1rios benef\u00edcios, incluindo melhoria na usabilidade e na est\u00e9tica.<\/p>\n<p>Para configurar os permalinks, expanda a se\u00e7\u00e3o <strong>Configura\u00e7\u00f5es<\/strong> e clique no menu <strong>Permalinks.<\/strong>\u00a0Aqui, mude as <strong>Configura\u00e7\u00f5es Comuns<\/strong> para <strong>Nome do post<\/strong>:<\/p>\n<figure style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/WordPress-change-Permalink-settings-post_name.png\" alt=\"Changing WordPress permalink settings. \"><\/figure>\n<p>A configura\u00e7\u00e3o da estrutura permalink usando a estrutura de <strong>Nome do Post<\/strong> tamb\u00e9m \u00e9 necess\u00e1ria porque nos permitir\u00e1 recuperar artigos mais tarde em nosso c\u00f3digo Python usando o formato JSON. Caso contr\u00e1rio, um erro de decodifica\u00e7\u00e3o JSON ser\u00e1 lan\u00e7ado.<\/p>\n<h2>Como controlar o WordPress a partir do Python<\/h2>\n<p>WordPress \u00e9 escrito em PHP, mas tem uma API REST que permite que outras linguagens de programa\u00e7\u00e3o, sites e aplicativos consumam seu conte\u00fado. Expor o conte\u00fado do WordPress na arquitetura REST o torna dispon\u00edvel no formato JSON. Portanto, outros servi\u00e7os podem se integrar com o WordPress e realizar opera\u00e7\u00f5es de cria\u00e7\u00e3o, leitura, atualiza\u00e7\u00e3o e exclus\u00e3o (CRUD) sem a necessidade de uma instala\u00e7\u00e3o local do WordPress.<\/p>\n<p>Em seguida, voc\u00ea vai construir um aplicativo Python simples para ver como voc\u00ea pode usar a API REST do WordPress para criar, recuperar, atualizar e excluir artigos.<\/p>\n<p>Crie um novo diret\u00f3rio para seu novo e simples projeto Python e nomeie-o algo como <code>PythonWordPress<\/code>:<\/p>\n<pre><code class=\"language-bash\">..\/PythonWordPress<\/code><\/pre>\n<p>Agora, voc\u00ea vai criar um ambiente virtual para seu projeto, permitindo que ele mantenha um conjunto independente de pacotes Python instalados, isolando dos diret\u00f3rios do seu sistema e evitando conflitos de vers\u00e3o. Crie um ambiente virtual executando o comando <code>venv<\/code>:<\/p>\n<pre><code class=\"language-bash\">python3 -m venv .venv<\/code><\/pre>\n<p>Agora, execute um comando para ativar o ambiente virtual <strong>.venv.<\/strong> Este comando varia de acordo com o sistema operacional:<\/p>\n<ul>\n<li>Windows: <code>.venvScriptsactivate<\/code><\/li>\n<li>Mac\/Linux: <code>.venv\/bin\/activate<\/code><\/li>\n<\/ul>\n<p>A seguir, armazene a configura\u00e7\u00e3o relacionada \u00e0 sua conta WordPress. Para separar a configura\u00e7\u00e3o do aplicativo do seu c\u00f3digo Python, crie um arquivo <strong>.env<\/strong> em seu diret\u00f3rio de projetos e adicione estas vari\u00e1veis de ambiente ao arquivo:<\/p>\n<pre><code class=\"language-markup\">WEBSITE_URL=\"&lt;&gt;\"\n\nAPI_USERNAME=\"&lt;&gt;\"\n\nAPI_PASSWORD=\"&lt;&gt;\"<\/code><\/pre>\n<p>Felizmente, ler os dados acima a partir de um aplicativo Python \u00e9 f\u00e1cil. Voc\u00ea pode instalar o pacote <strong>Python-dotenv<\/strong> para que o seu aplicativo possa ler a configura\u00e7\u00e3o a partir do arquivo <strong>.env:<\/strong><\/p>\n<pre><code class=\"language-bash\">pip install python-dotenv<\/code><\/pre>\n<p>Ent\u00e3o, instale <strong>aiohttp<\/strong>, um cliente\/servidor HTTP ass\u00edncrono para Python:<\/p>\n<pre><code class=\"language-bash\">pip install aiohttp<\/code><\/pre>\n<p>Agora adicione um arquivo chamado <strong>app.py<\/strong> com o seguinte c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import asyncio\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post'\n\n}\n\ndef print_menu():\n\nfor key in menu_options.keys():\n\nprint (key, '--', menu_options[key] )\n\nasync def main():\n\nwhile(True):\n\nprint_menu()\n\noption = input_number('Enter your choice: ')\n\n#Check what choice was entered and act accordingly\n\nif option == 1:\n\nprint('Listing posts...')\n\nelif option == 2:\n\nprint('Retrieving a post...')\n\nelse:\n\nprint('Invalid option. Please enter a number between 1 and 5.')\n\ndef input_number(prompt):\n\nwhile True:\n\ntry:\n\nvalue = int(input(prompt))\n\nexcept ValueError:\n\nprint('Wrong input. Please enter a number ...')\n\ncontinue\n\nif value &lt; 0:\n\nprint(\"Sorry, your response must not be negative.\")\n\nelse:\n\nbreak\n\nreturn value\n\ndef input_text(prompt):\n\nwhile True:\n\ntext = input(prompt)\n\nif len(text) == 0:\n\nprint(\"Text is required.\")\n\ncontinue\n\nelse:\n\nbreak\n\nreturn text\n\nif __name__=='__main__':\n\nasyncio.run(main())<\/code><\/pre>\n<p>O c\u00f3digo acima exibe um menu de console e pede que voc\u00ea digite um n\u00famero para escolher uma op\u00e7\u00e3o. Em seguida, voc\u00ea expandir\u00e1 este projeto e implementar\u00e1 o c\u00f3digo que permite que voc\u00ea liste todos os artigos e recupere um artigo espec\u00edfico usando seu id do artigo.<\/p>\n<h2>Recupera\u00e7\u00e3o de artigos com c\u00f3digo<\/h2>\n<p>Para interagir com o WordPress REST API, voc\u00ea deve criar um novo arquivo Python. Crie um arquivo chamado <strong>wordpress_api_helper.py<\/strong> com o seguinte conte\u00fado:<\/p>\n<pre><code class=\"language-python\">import aiohttp\n\nimport base64\n\nimport os\n\nimport json\n\nfrom dotenv import load_dotenv\n\nload_dotenv()\n\nuser=os.getenv(\"API_USERNAME\")\n\npassword=os.getenv(\"API_PASSWORD\")\n\nasync def get_all_posts():\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.get(\"\/wp-json\/wp\/v2\/posts\") as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_posts = json.loads(text)\n\nsorted_wp_posts = sorted(wp_posts, key=lambda p: p['id'])\n\nprint(\"=====================================\")\n\nfor wp_post in sorted_wp_posts:\n\nprint(\"id:\", wp_post['id'])\n\nprint(\"title:\", wp_post['title']['rendered'])\n\nprint(\"=====================================\")\n\nasync def get_post(id):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.get(f\"\/wp-json\/wp\/v2\/posts\/{id}\") as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\nprint(\"=====================================\")\n\nprint(\"Post\")\n\nprint(\"     id:\", wp_post['id'])\n\nprint(\"     title:\", wp_post['title']['rendered'])\n\nprint(\"     content:\", wp_post['content']['rendered'])\n\nprint(\"=====================================\")<\/code><\/pre>\n<p>Observe o uso da biblioteca <strong>aiohttp<\/strong> acima. Linguagens modernas fornecem sintaxe e ferramentas que permitem a programa\u00e7\u00e3o ass\u00edncrona. Isto aumenta a capacidade de resposta do aplicativo ao permitir que o programa execute tarefas ao lado de opera\u00e7\u00f5es como <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-uma-solicitacao-http\/\" target=\"_blank\" rel=\"noopener noreferrer\">solicita\u00e7\u00f5es web<\/a>, opera\u00e7\u00f5es do banco de dados e I\/O de disco. Python oferece <a href=\"https:\/\/docs.python.org\/3\/library\/asyncio.html\" target=\"_blank\" rel=\"noopener noreferrer\">asyncio<\/a> como base para o seu framework de programa\u00e7\u00e3o ass\u00edncrona, e a biblioteca <a href=\"https:\/\/docs.aiohttp.org\/en\/stable\/\" target=\"_blank\" rel=\"noopener noreferrer\">aiohttp<\/a> \u00e9 constru\u00edda sobre<strong> asyncio<\/strong> para trazer acesso ass\u00edncrono \u00e0s opera\u00e7\u00f5es Cliente\/Servidor HTTP feitas em Python.<\/p>\n<p>A fun\u00e7\u00e3o <code>ClientSession<\/code> acima roda de forma ass\u00edncrona e retorna um objeto <code>session<\/code>, que nosso programa usa para realizar uma opera\u00e7\u00e3o HTTP GET contra o endpoint <code>\/wp-json\/wp\/v2\/posts<\/code>. A \u00fanica diferen\u00e7a entre uma solicita\u00e7\u00e3o de recupera\u00e7\u00e3o de todos os artigos e uma solicita\u00e7\u00e3o para um espec\u00edfico \u00e9 que esta \u00faltima solicita\u00e7\u00e3o passa um par\u00e2metro <code>post id<\/code> na rota URL: <code>\/wp-json\/wp\/v2\/posts\/{id}<\/code>.<\/p>\n<p>Agora, abra o arquivo <strong>app.py<\/strong> e adicione a declara\u00e7\u00e3o <code>import<\/code>:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post<\/code><\/pre>\n<p>A seguir, modifique a fun\u00e7\u00e3o <code>main<\/code> para chamar as fun\u00e7\u00f5es <code>get_all_posts<\/code> e <code>get_post<\/code>:<\/p>\n<pre><code class=\"language-python\">if option == 1:\n\nprint('Listing posts...')\n\nawait get_all_posts()\n\nelif option == 2:\n\nprint('Retrieving a post...')\n\nid = input_number('Enter the post id: ')\n\nawait get_post(id)<\/code><\/pre>\n<p>Em seguida, execute o aplicativo:<\/p>\n<pre><code class=\"language-bash\">python app.py<\/code><\/pre>\n<p>Voc\u00ea ver\u00e1 ent\u00e3o o menu de aplicativos:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 804px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Python-app-WordPress-start.png\" alt=\"Menu do aplicativo Python\" width=\"804\" height=\"114\"><figcaption class=\"wp-caption-text\">Menu do aplicativo Python<\/figcaption><\/figure><\/figure>\n<p>Agora tente a op\u00e7\u00e3o 1 para ver a lista de artigos que seu aplicativo Python recupera, e a op\u00e7\u00e3o 2 para selecionar um artigo:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 670px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/list-and-select-posts-Python-app.png\" alt=\"Aplicativo Python mostrando a lista de artigos e um artigo selecionada pelo usu\u00e1rio\" width=\"670\" height=\"624\"><figcaption class=\"wp-caption-text\">Aplicativo Python mostrando a lista de artigos e um artigo selecionada pelo usu\u00e1rio<\/figcaption><\/figure><\/figure>\n<h2>Criando artigos com c\u00f3digo<\/h2>\n<p>Para criar um artigo do WordPress no Python, comece abrindo o arquivo <strong>wordpress_api_helper.py<\/strong> e adicione a fun\u00e7\u00e3o <code>create_post<\/code>:<\/p>\n<pre><code class=\"language-python\">async def create_post(title, content):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.post(\n\nf\"\/wp-json\/wp\/v2\/posts?content={content}&title={title}&status=publish\"\n\n, auth=aiohttp.BasicAuth(user, password)) as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\npost_id = wp_post['id']\n\nprint(f'New post created with id: {post_id}')<\/code><\/pre>\n<p>Este c\u00f3digo chama a fun\u00e7\u00e3o <code>post<\/code> no objeto <code>session<\/code>, passando o par\u00e2metro <code>auth<\/code> ao lado da URL do endpoint da API REST. O objeto <code>auth<\/code> agora cont\u00e9m o usu\u00e1rio do WordPress e a senha que voc\u00ea criou usando Senhas do aplicativo. Agora, abra o arquivo <strong>app.py<\/strong> e adicione o c\u00f3digo para importar <code>create_post<\/code> e o menu:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post, create_post\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post',\n\n3: 'Create a Post'\n\n}<\/code><\/pre>\n<p>Ent\u00e3o adicione uma terceira op\u00e7\u00e3o de menu:<\/p>\n<pre><code class=\"language-python\">elif option == 3:\n\nprint('Creating a post...')\n\ntitle = input_text('Enter the post title: ')\n\ncontent = input_text('Enter the post content: ')\n\nawait create_post(title, f\"{content}\")\n<\/code><\/pre>\n<p>Ent\u00e3o, execute o aplicativo e tente a op\u00e7\u00e3o 3, passando um t\u00edtulo e conte\u00fado para criar um novo artigo no WordPress:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 671px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/create-a-WordPress-post-Python-app.png\" alt=\"Creating a WordPress post with Python.\" width=\"671\" height=\"335\"><figcaption class=\"wp-caption-text\">Aplicativo Python exibindo o novo artigo criado no WordPress<\/figcaption><\/figure><\/figure>\n<p>Escolhendo a op\u00e7\u00e3o 1 novamente retornar\u00e1 o id e o t\u00edtulo do novo artigo adicionado:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 672px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/return-id-newly-added-post.png\" alt=\"Returning the id and the title of the newly added post.\" width=\"672\" height=\"333\"><figcaption class=\"wp-caption-text\">Aplicativo Python devolvendo o t\u00edtulo e ID do novo artigo.<\/figcaption><\/figure><\/figure>\n<p>Voc\u00ea tamb\u00e9m pode abrir o seu site WordPress para ver o novo artigo:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 754px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Kinsta-Compute-Optimized-C2-post.png\" alt=\"The newly created post in the browser.\" width=\"754\" height=\"600\"><figcaption class=\"wp-caption-text\">Imagem do navegador do novo artigo do WordPress.<\/figcaption><\/figure><\/figure>\n<h2>Atualiza\u00e7\u00e3o de artigos com c\u00f3digo<\/h2>\n<p>Abra o arquivo <strong>wordpress_api_helper.py<\/strong> e adicione a fun\u00e7\u00e3o <code>update_post<\/code>:<\/p>\n<pre><code class=\"language-python\">async def update_post(id, title, content):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.post(\n\nf\"\/wp-json\/wp\/v2\/posts\/{id}?content={content}&title={title}&status=publish\"\n\n, auth=aiohttp.BasicAuth(user, password)) as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\npost_id = wp_post['id']\n\nprint(f'New post created with id: {post_id}')<\/code><\/pre>\n<p>Ent\u00e3o abra o arquivo <strong>app.py<\/strong> e adicione o c\u00f3digo para importar <code>update_post<\/code> e o menu:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post, create_post, update_post\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post',\n\n3: 'Create a Post',\n\n4: 'Update a Post'\n\n}<\/code><\/pre>\n<p>Em seguida, adicione uma quarta op\u00e7\u00e3o de menu:<\/p>\n<pre><code class=\"language-python\">elif option == 4:\n\nprint('Updating a post...')\n\nid = input_number('Enter the post id: ')\n\ntitle = input_text('Enter the post title: ')\n\ncontent = input_text('Enter the post content: ')\n\nawait update_post(id, title, f\"{content}\")\n<\/code><\/pre>\n<p>Ent\u00e3o execute o aplicativo e tente a op\u00e7\u00e3o 4, passando um id do artigo, t\u00edtulo e conte\u00fado para atualizar um artigo existente.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 670px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/updating-WordPress-post-Python-app.png\" alt=\"Updating a WordPress post.\" width=\"670\" height=\"338\"><figcaption class=\"wp-caption-text\">Aplicativo Python mostrando o menu atualizado.<\/figcaption><\/figure><\/figure>\n<p>Escolhendo a op\u00e7\u00e3o 2 e passando a id atualizada do artigo, retornando os detalhes do artigo rec\u00e9m-adicionado:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 673px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/return-updated-post-details.png\" alt=\"Returning the details of the newly updated post.\" width=\"673\" height=\"318\"><figcaption class=\"wp-caption-text\">Aplicativo Python mostrando o artigo atualizado<\/figcaption><\/figure><\/figure>\n<h2>Excluindo artigos com c\u00f3digo<\/h2>\n<p>Voc\u00ea pode passar a identifica\u00e7\u00e3o do artigo para a API REST para excluir um artigo.<\/p>\n<p>Abra o arquivo <strong>wordpress_api_helper.py<\/strong> e adicione a fun\u00e7\u00e3o <code>delete_post<\/code>:<\/p>\n<pre><code class=\"language-python\">async def delete_post(id):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.delete(\n\nf\"\/wp-json\/wp\/v2\/posts\/{id}\"\n\n, auth=aiohttp.BasicAuth(user, password)) as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\npost_id = wp_post['id']\n\nprint(f'Post with id {post_id} deleted successfully.')<\/code><\/pre>\n<p>Agora abra o arquivo <strong>app.py<\/strong> e adicione o c\u00f3digo para importar <code>delete_post<\/code> e o menu:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post, create_post, update_post, delete_post\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post',\n\n3: 'Create a Post',\n\n4: 'Update a Post',\n\n5: 'Delete a Post',\n\n}<\/code><\/pre>\n<p>Em seguida, adicione uma quinta op\u00e7\u00e3o de menu:<\/p>\n<pre><code class=\"language-python\">elif option == 5:\n\nprint('Deleting a post...')\n\nid = input_number('Enter the post id: ')\n\nawait delete_post(id)<\/code><\/pre>\n<p>Agora execute o aplicativo e tente a op\u00e7\u00e3o 5, passando uma identifica\u00e7\u00e3o para excluir o artigo existente no WordPress:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 651px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/deleting-WordPress-Post-Python-app.png\" alt=\"Deleting a WordPress post with the Python app.\" width=\"651\" height=\"120\"><figcaption class=\"wp-caption-text\">Aplicativo Python mostrando a exclus\u00e3o do artigo selecionado<\/figcaption><\/figure><\/figure>\n<p>Nota: O artigo exclu\u00eddo ainda pode aparecer se voc\u00ea executar a op\u00e7\u00e3o <strong>List Posts<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 671px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Python-app-listing-posts.png\" alt=\"Python app listing posts.\" width=\"671\" height=\"288\"><figcaption class=\"wp-caption-text\">Aplicativo Python mostrando a lista de artigos original<\/figcaption><\/figure><\/figure>\n<p>Para confirmar que voc\u00ea excluiu o artigo, aguarde alguns segundos e tente a op\u00e7\u00e3o <strong>List Posts<\/strong>\u00a0novamente. E \u00e9 isso!<\/p>\n<h2>Resumo<\/h2>\n<p>Gra\u00e7as \u00e0 API REST do WordPress e \u00e0s bibliotecas de clientes HTTP do Python, os aplicativos Python e o WordPress podem se unir e conversar uns com os outros. O benef\u00edcio da API REST \u00e9 que ela permite que voc\u00ea opere o WordPress remotamente a partir de um aplicativo Python, onde a poderosa linguagem Python permite a cria\u00e7\u00e3o automatizada de conte\u00fado que segue sua estrutura e frequ\u00eancia desejadas.<\/p>\n<p>DevKinsta torna a cria\u00e7\u00e3o e desenvolvimento de um site WordPress local r\u00e1pido e f\u00e1cil. Ele fornece um ambiente local para o desenvolvimento de temas e plugins WordPress e oferece um modelo simplificado de implanta\u00e7\u00e3o, cortesia do seu modelo de instala\u00e7\u00e3o baseado em Docker, autocontido.<\/p>\n<p>Qual \u00e9 \u00e0 sua experi\u00eancia trabalhando com Python e WordPress?<\/p>\n<p><em>Quando pronto para expandir essa experi\u00eancia, voc\u00ea pode ler <a href=\"https:\/\/kinsta.com\/pt\/blog\/wordpress-rest-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">O Guia B\u00e1sico e Completo para WordPress REST API<\/a><\/em> para explorar outras possibilidades.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress tornou-se o sistema de gerenciamento de conte\u00fado (CMS) mais utilizado devido, em grande parte, \u00e0 sua interface de programa\u00e7\u00e3o de aplicativos (API). A API REST &#8230;<\/p>\n","protected":false},"author":117,"featured_media":54292,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[477,44],"topic":[1026,962,1017,1001],"class_list":["post-54291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-python","tag-webdev","topic-desenvolvimento-wordpress","topic-devkinsta","topic-linguagens-desenvolvimento-web","topic-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress<\/title>\n<meta name=\"description\" content=\"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress\" \/>\n<meta property=\"og:description\" content=\"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-24T08:18:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-07T14:21:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Salman Ravoof\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png\" \/>\n<meta name=\"twitter:creator\" content=\"@salmanravoof\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Salman Ravoof\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/\"},\"author\":{\"name\":\"Salman Ravoof\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987\"},\"headline\":\"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress\",\"datePublished\":\"2022-10-24T08:18:35+00:00\",\"dateModified\":\"2025-02-07T14:21:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/\"},\"wordCount\":2348,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png\",\"keywords\":[\"python\",\"webdev\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/\",\"name\":\"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png\",\"datePublished\":\"2022-10-24T08:18:35+00:00\",\"dateModified\":\"2025-02-07T14:21:04+00:00\",\"description\":\"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Desenvolvimento WordPress\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/desenvolvimento-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987\",\"name\":\"Salman Ravoof\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g\",\"caption\":\"Salman Ravoof\"},\"description\":\"Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.\",\"sameAs\":[\"https:\/\/salmanravoof.com\",\"https:\/\/www.linkedin.com\/in\/salman-ravoof-5a749133\/\",\"https:\/\/x.com\/salmanravoof\"],\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/salmanravoof\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress","description":"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/","og_locale":"pt_PT","og_type":"article","og_title":"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress","og_description":"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.","og_url":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2022-10-24T08:18:35+00:00","article_modified_time":"2025-02-07T14:21:04+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png","type":"image\/png"}],"author":"Salman Ravoof","twitter_card":"summary_large_image","twitter_description":"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png","twitter_creator":"@salmanravoof","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Salman Ravoof","Tempo estimado de leitura":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/"},"author":{"name":"Salman Ravoof","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987"},"headline":"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress","datePublished":"2022-10-24T08:18:35+00:00","dateModified":"2025-02-07T14:21:04+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/"},"wordCount":2348,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png","keywords":["python","webdev"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/","url":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/","name":"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png","datePublished":"2022-10-24T08:18:35+00:00","dateModified":"2025-02-07T14:21:04+00:00","description":"Saiba como os aplicativos Python e o WordPress podem se unir e conversar uns com os outros usando o WordPress REST API e as bibliotecas clientes HTTP do Python.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/10\/python-wordpress.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/python-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Desenvolvimento WordPress","item":"https:\/\/kinsta.com\/pt\/topicos\/desenvolvimento-wordpress\/"},{"@type":"ListItem","position":3,"name":"Melhore suas Habilidades Python Conectando seu Aplicativo ao WordPress"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987","name":"Salman Ravoof","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g","caption":"Salman Ravoof"},"description":"Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.","sameAs":["https:\/\/salmanravoof.com","https:\/\/www.linkedin.com\/in\/salman-ravoof-5a749133\/","https:\/\/x.com\/salmanravoof"],"url":"https:\/\/kinsta.com\/pt\/blog\/author\/salmanravoof\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/54291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/117"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=54291"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/54291\/revisions"}],"predecessor-version":[{"id":54588,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/54291\/revisions\/54588"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/translations\/dk"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/54291\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/54292"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=54291"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=54291"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=54291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}