GitHub PullRequestReviewCommentEvent at 2014-06-17 01:53:34
Repository: pythonclub.github.io
Actor: igr-santos
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/comments/13839868","id":13839868,"diff_hunk":"@@ -0,0 +1,626 @@\n+Gerenciando banco de dados SQLite3 com Python - Parte 1\n+=======================================================\n+\n+:date: 2014-06-16 23:59\n+:tags: Python, Banco de dados\n+:category: Python, Banco de dados\n+:slug: gerenciando-banco-dados-sqlite3-python-parte1\n+:author: Regis da Silva\n+:email: regis.santos.100@gmail.com\n+:github: rg3915\n+:summary: Veja neste artigo como gerenciar banco de dados SQLite3 em Python usando o terminal.\n+\n+Eu separei este post em duas partes: a **Parte 1** é bem elementar e objetiva, visando apresentar o básico sobre a realização do CRUD num banco de dados SQLite3 em Python usando o terminal.\n+\n+A **Parte 2**, num nível intermediário, usa classes e métodos mais elaborados para gerenciar o CRUD, e algumas coisinhas a mais.\n+\n+Nota: Para entender o uso de classes e métodos leia o post `Introdução a Classes e Métodos em Python <http://pythonclub.com.br/introducao-classes-metodos-python-basico.html>`_. E para entender os comandos SQL e a manipulação de registros no SQLite3 leia `Guia rápido de comandos SQLite3 <http://pythonclub.com.br/guia-rapido-comandos-sqlite3.html>`_.\n+\n+Para os exemplos considere a tabela ``clientes`` e seus campos:\n+\n++-----------+-----------------+-----------+\n+| Campo     | Tipo            | Requerido |\n++===========+=================+===========+\n+| id        | inteiro         | sim       |\n++-----------+-----------------+-----------+\n+| nome      | texto      \t  | sim       |\n++-----------+-----------------+-----------+\n+| idade     | inteiro         | não       |\n++-----------+-----------------+-----------+\n+| cpf       | texto (11)\t  | sim       |\n++-----------+-----------------+-----------+\n+| email     | texto\t\t\t  | sim       |\n++-----------+-----------------+-----------+\n+| fone      | texto \t\t  | não       |\n++-----------+-----------------+-----------+\n+| cidade    | texto \t\t  | não       |\n++-----------+-----------------+-----------+\n+| uf        | texto (2)\t      | sim       |\n++-----------+-----------------+-----------+\n+| criado_em | data            | sim       |\n++-----------+-----------------+-----------+\n+| bloqueado | boleano         | não       |\n++-----------+-----------------+-----------+\n+\n+Obs: O campo ``bloqueado`` nós vamos inserir depois com o comando ``ALTER TABLE``.\n+\n+Veja os exemplos em `github <https://github.com/rg3915/pythonDesktopApp/tree/master/pythonSQLite>`_.\n+\n+Como mencionado antes, esta parte será **básica e objetiva**. A intenção é realizar o CRUD da forma mais simples e objetiva possível.\n+\n+PS: *Considere a sintaxe para Python 3*.\n+\n+Conectando e desconectando do banco\n+-----------------------------------\n+\n+Podemos criar o banco de dados de duas formas: na **memória RAM**\n+\n+.. code-block:: python\n+\n+\t# conectando...\n+\tconn = sqlite3.connect(':memory:')\n+\n+ou persistindo em um **banco de dados**, vamos usar sempre este caso.\n+\n+.. code-block:: python\n+\n+\t# conectando...\n+\tconn = sqlite3.connect('clientes.db')\n+\n+Uma sintaxe mínima para se conectar a um banco de dados é:\n+\n+.. code-block:: python\n+\n+\t# connect_db.py\n+\t# 01_create_db.py\n+\timport sqlite3\n+\n+\tconn = sqlite3.connect('clientes.db')\n+\tconn.close()\n+\n+O último método desconecta do banco.\n+\n+Considere um arquivo para cada operação.\n+\n+Nota: Os arquivos estão numerados apenas para sugerir uma sequência.\n+\n+Criando um banco de dados\n+-------------------------\n+\n+O código para criar um banco de dados é o mesmo mencionado anteriormente.\n+\n+Para rodar este programa abra o **terminal** e digite:\n+\n+.. code-block:: bash\n+\n+\t$ python3 01_create_db.py\n+\t$ ls *.db\n+\n+Digitando ``ls`` você verá que o banco foi criado.\n+\n+Criando uma tabela\n+------------------\n+\n+Para criar uma tabela no banco de dados usamos dois métodos fundamentais:\n+\n+\t- **cursor**: é um interador que permite navegar e manipular os registros do bd.\n+\t- **execute**: lê e executa comandos SQL puro diretamente no bd.\n+\n+.. code-block:: python\n+\n+\t# 02_create_schema.py\n+\timport sqlite3\n+\n+\t# conectando...\n+\tconn = sqlite3.connect('clientes.db')\n+\t# definindo um cursor\n+\tcursor = conn.cursor()\n+\n+\t# criando a tabela (schema)\n+\tcursor.execute(\"\"\"\n+\tCREATE TABLE clientes (\n+\t\tid INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n+\t\tnome TEXT NOT NULL,\n+\t\tidade INTEGER,\n+\t\tcpf\tVARCHAR(11) NOT NULL,\n+\t\temail TEXT NOT NULL,\n+\t\tfone TEXT,\n+\t\tcidade TEXT,\n+\t\tuf VARCHAR(2) NOT NULL,\n+\t\tcriado_em DATE NOT NULL\n+\t);\n+\t\"\"\")\n+\n+\tprint('Tabela criada com sucesso.')\n+\t# desconectando...\n+\tconn.close()\n+\n+Para executar digite no terminal:\n+\n+.. code-block:: bash\n+\n+\t$ python3 02_create_schema.py\n+\t$ sqlite3 clientes.db '.tables'\n+\t$ sqlite3 clientes.db 'PRAGMA table_info(clientes)'\n+\n+Digitando ``sqlite3 clientes.db '.tables'`` você verá que a tabela foi criada. E o comando ``sqlite3 clientes.db 'PRAGMA table_info(clientes)'`` retorna os campos da tabela.\n+\n+**Nota**: A única diferença, caso você use *Python 2* é no print, onde você deve tirar os parênteses. E no início do arquivo é recomendável que se defina a codificação ``utf-8``, que no caso do Python 3 já é padrão.\n+\n+.. code-block:: python\n+\n+\t# 02_create_schema.py\n+\t# -*- coding: utf-8 -*-\n+\t# usando Python 2\n+\timport sqlite3\n+\t...\n+\tprint 'Tabela criada com sucesso.'\n+\n+Agora vamos fazer o CRUD. Começando com a letra\n+\n+**C**reate\n+\n+Inserindo um registro com comando SQL\n+-------------------------------------\n+\n+A única novidade aqui é o método **commit()**. É ele que grava de fato as alterações na tabela. *Lembrando que uma tabela é alterada com as instruções SQL ``INSERT, UPDATE`` e ``DELETE``.*\n+\n+.. code-block:: python\n+\n+\t# 03_create_data_sql.py\n+\timport sqlite3\n+\n+\tconn = sqlite3.connect('clientes.db')\n+\tcursor = conn.cursor()\n+\n+\t# inserindo dados na tabela\n+\tcursor.execute(\"\"\"\n+\tINSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)\n+\tVALUES ('Regis', 35, '00000000000', 'regis@email.com', '11-98765-4321', 'Sao Paulo', 'SP', '2014-06-08')\n+\t\"\"\")\n+\n+\tcursor.execute(\"\"\"\n+\tINSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)\n+\tVALUES ('Aloisio', 87, '11111111111', 'aloisio@email.com', '98765-4322', 'Porto Alegre', 'RS', '2014-06-09')\n+\t\"\"\")\n+\n+\tcursor.execute(\"\"\"\n+\tINSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)\n+\tVALUES ('Bruna', 21, '22222222222', 'bruna@email.com', '21-98765-4323', 'Rio de Janeiro', 'RJ', '2014-06-09')\n+\t\"\"\")\n+\n+\tcursor.execute(\"\"\"\n+\tINSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)\n+\tVALUES ('Matheus', 19, '33333333333', 'matheus@email.com', '11-98765-4324', 'Campinas', 'SP', '2014-06-08')\n+\t\"\"\")\n+\n+\t# gravando no bd\n+\tconn.commit()\n+\n+\tprint('Dados inseridos com sucesso.')\n+\n+\tconn.close()\n+\n+Para executar digite no terminal:\n+\n+.. code-block:: bash\n+\n+\t$ python3 03_create_data_sql.py\n+\n+\n+Inserindo n registros com uma tupla de dados\n+--------------------------------------------\n+\n+Usando uma *lista* podemos inserir vários registros de uma vez, e o método ``executemany`` faz essa ação.\n+\n+.. code-block:: python\n+\n+\t# 04_create_data_nrecords.py\n+\timport sqlite3\n+\n+\tconn = sqlite3.connect('clientes.db')\n+\tcursor = conn.cursor()\n+\n+\t# criando uma lista de dados\n+\tlista = [(\n+\t    'Fabio', 23, '44444444444', 'fabio@email.com', '1234-5678', 'Belo Horizonte', 'MG', '2014-06-09'),\n+\t    ('Joao', 21, '55555555555', 'joao@email.com',\n+\t     '11-1234-5600', 'Sao Paulo', 'SP', '2014-06-09'),\n+\t    ('Xavier', 24, '66666666666', 'xavier@email.com', '12-1234-5601', 'Campinas', 'SP', '2014-06-10')]\n+\n+\t# inserindo dados na tabela\n+\tcursor.executemany(\"\"\"\n+\tINSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)\n+\tVALUES (?,?,?,?,?,?,?,?)\n+\t\"\"\", lista)\n+\n+\tconn.commit()\n+\n+\tprint('Dados inseridos com sucesso.')\n+\n+\tconn.close()\n+\n+Observe o uso de **?** isto significa que no lugar de cada **?** entrará os valores da lista na sua posição respectiva. É o que nós chamamos de *parâmetros de entrada*.\n+\n+Para executar digite no terminal:\n+\n+.. code-block:: bash\n+\n+\t$ python3 04_create_data_nrecords.py\n+\n+\n+Inserindo um registro com parâmetros de entrada definido pelo usuário\n+---------------------------------------------------------------------\n+\n+Neste exemplo usaremos parâmetros de entrada, que deverá ser digitado pelo usuário. Esta é a forma mais desejável de entrada de dados porque o usuário pode digitar os dados em tempo de execução.\n+\n+.. code-block:: python\n+\n+\t# 05_create_data_param.py\n+\timport sqlite3\n+\n+\tconn = sqlite3.connect('clientes.db')\n+\tcursor = conn.cursor()\n+\n+\t# solicitando os dados ao usuário\n+\tp_nome = input('Nome: ')\n+\tp_idade = input('Idade: ')\n+\tp_cpf = input('CPF: ')\n+\tp_email = input('Email: ')\n+\tp_fone = input('Fone: ')\n+\tp_cidade = input('Cidade: ')\n+\tp_uf = input('UF: ')\n+\tp_criado_em = input('Criado em (yyyy-mm-dd): ')\n+\n+\t# inserindo dados na tabela\n+\tcursor.execute(\"\"\"\n+\tINSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)\n+\tVALUES (?,?,?,?,?,?,?,?)\n+\t\"\"\", (p_nome, p_idade, p_cpf, p_email, p_fone, p_cidade, p_uf, p_criado_em))\n+\n+\tconn.commit()\n+\n+\tprint('Dados inseridos com sucesso.')\n+\n+\tconn.close()\n+\n+**Nota**: Caso use *Python 2* use o método ``raw_input()`` em\n+\n+.. code-block:: python\n+\n+\t# python 2\t\n+\tp_nome = raw_input('Nome: ')\n+\t...\n+\tprint 'Dados inseridos com sucesso.'\n+\n+Para executar digite no terminal:\n+\n+.. code-block:: bash\n+\n+\t$ python3 05_create_data_param.py\n+\n+Veja a interação do programa:\n+\n+.. code-block:: bash\n+\n+\tNome: Regis\n+\tIdade: 35\n+\tCPF: 30020030011 \n+\tEmail: regis@email.com\n+\tFone: 11 9537-0000\n+\tCidade: Sao Paulo\n+\tUF: SP\n+\tCriado em (yyyy-mm-dd): 2014-06-15\n+\tDados inseridos com sucesso.\n+\n+\n+\n+**R**ead\n+\n+Lendo os dados\n+--------------\n+\n+Aqui nós usamos o famoso ``SELECT``. O método ``fetchall()`` retorna o resultado do ``SELECT``.\n+\n+.. code-block:: python\n+\n+\t# 06_read_data.py\n+\timport sqlite3\n+\n+\tconn = sqlite3.connect('clientes.db')\n+\tcursor = conn.cursor()\n+\n+\t# lendo os dados\n+\tcursor.execute(\"\"\"\n+\tSELECT * FROM clientes;\n+\t\"\"\")\n+\n+\tfor linha in cursor.fetchall():\n+\t    print(linha)\n+\n+\tconn.close()\n+\n+Para executar digite no terminal:\n+\n+.. code-block:: bash\n+\n+\t$ python3 06_read_data.py\n+\n+Eis o resultado:\n+\n+.. code-block:: bash\n+\n+\t(1, 'Regis', 35, '00000000000', 'regis@email.com', '11-98765-4321', 'Sao Paulo', 'SP', '2014-06-08')\n+\t(2, 'Aloisio', 87, '11111111111', 'aloisio@email.com', '98765-4322', 'Porto Alegre', 'RS', '2014-06-09')\n+\t(3, 'Bruna', 21, '22222222222', 'bruna@email.com', '21-98765-4323', 'Rio de Janeiro', 'RJ', '2014-06-09')\n+\t(4, 'Matheus', 19, '33333333333', 'matheus@email.com', '11-98765-4324', 'Campinas', 'SP', '2014-06-08')\n+\t(5, 'Fabio', 23, '44444444444', 'fabio@email.com', '1234-5678', 'Belo Horizonte', 'MG', '2014-06-09')\n+\t(6, 'Joao', 21, '55555555555', 'joao@email.com', '11-1234-5600', 'Sao Paulo', 'SP', '2014-06-09')\n+\t(7, 'Xavier', 24, '66666666666', 'xavier@email.com', '12-1234-5601', 'Campinas', 'SP', '2014-06-10')\n+\t(8, 'Regis', 35, '30020030011', 'regis@email.com', '11 9750-0000', 'Sao Paulo', 'SP', '2014-06-15')\n+\t\n+\n+\n+**U**pdate","path":"content/gerenciando-banco-dados-sqlite3-python-parte1.rst","position":364,"original_position":364,"commit_id":"519e6666332a023b4fd1f443643525f8460f27ff","original_commit_id":"519e6666332a023b4fd1f443643525f8460f27ff","user":{"login":"igr-santos","id":2062174,"avatar_url":"https://avatars.githubusercontent.com/u/2062174?","gravatar_id":"094de17290dd77b6111b0f45a7c247e2","url":"https://api.github.com/users/igr-santos","html_url":"https://github.com/igr-santos","followers_url":"https://api.github.com/users/igr-santos/followers","following_url":"https://api.github.com/users/igr-santos/following{/other_user}","gists_url":"https://api.github.com/users/igr-santos/gists{/gist_id}","starred_url":"https://api.github.com/users/igr-santos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/igr-santos/subscriptions","organizations_url":"https://api.github.com/users/igr-santos/orgs","repos_url":"https://api.github.com/users/igr-santos/repos","events_url":"https://api.github.com/users/igr-santos/events{/privacy}","received_events_url":"https://api.github.com/users/igr-santos/received_events","type":"User","site_admin":false},"body":"da uma olhada nos títulos que você tentar obter o mesmo resultado que esse, pq não funciona essa sintaxe.","created_at":"2014-06-17T01:53:34Z","updated_at":"2014-06-17T01:53:34Z","html_url":"https://github.com/pythonclub/pythonclub.github.io/pull/111#discussion_r13839868","pull_request_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111","_links":{"self":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/comments/13839868"},"html":{"href":"https://github.com/pythonclub/pythonclub.github.io/pull/111#discussion_r13839868"},"pull_request":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111"}}},"pull_request":{"url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111","id":17212350,"html_url":"https://github.com/pythonclub/pythonclub.github.io/pull/111","diff_url":"https://github.com/pythonclub/pythonclub.github.io/pull/111.diff","patch_url":"https://github.com/pythonclub/pythonclub.github.io/pull/111.patch","issue_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/issues/111","number":111,"state":"open","title":"Gerenciando bd SQLite3 Python Parte 1","user":{"login":"rg3915","id":864843,"avatar_url":"https://avatars.githubusercontent.com/u/864843?","gravatar_id":"6323df9d71df870a699d50cb865a9e72","url":"https://api.github.com/users/rg3915","html_url":"https://github.com/rg3915","followers_url":"https://api.github.com/users/rg3915/followers","following_url":"https://api.github.com/users/rg3915/following{/other_user}","gists_url":"https://api.github.com/users/rg3915/gists{/gist_id}","starred_url":"https://api.github.com/users/rg3915/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rg3915/subscriptions","organizations_url":"https://api.github.com/users/rg3915/orgs","repos_url":"https://api.github.com/users/rg3915/repos","events_url":"https://api.github.com/users/rg3915/events{/privacy}","received_events_url":"https://api.github.com/users/rg3915/received_events","type":"User","site_admin":false},"body":"Gerenciando banco de dados SQLite3 com Python - Parte 1.","created_at":"2014-06-17T01:29:07Z","updated_at":"2014-06-17T01:53:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"eff588f176f133899c4ee040dd64cb724e582f8a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111/commits","review_comments_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111/comments","review_comment_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/comments/{number}","comments_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/issues/111/comments","statuses_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/statuses/519e6666332a023b4fd1f443643525f8460f27ff","head":{"label":"rg3915:pelican","ref":"pelican","sha":"519e6666332a023b4fd1f443643525f8460f27ff","user":{"login":"rg3915","id":864843,"avatar_url":"https://avatars.githubusercontent.com/u/864843?","gravatar_id":"6323df9d71df870a699d50cb865a9e72","url":"https://api.github.com/users/rg3915","html_url":"https://github.com/rg3915","followers_url":"https://api.github.com/users/rg3915/followers","following_url":"https://api.github.com/users/rg3915/following{/other_user}","gists_url":"https://api.github.com/users/rg3915/gists{/gist_id}","starred_url":"https://api.github.com/users/rg3915/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rg3915/subscriptions","organizations_url":"https://api.github.com/users/rg3915/orgs","repos_url":"https://api.github.com/users/rg3915/repos","events_url":"https://api.github.com/users/rg3915/events{/privacy}","received_events_url":"https://api.github.com/users/rg3915/received_events","type":"User","site_admin":false},"repo":{"id":19762475,"name":"pythonclub.github.io","full_name":"rg3915/pythonclub.github.io","owner":{"login":"rg3915","id":864843,"avatar_url":"https://avatars.githubusercontent.com/u/864843?","gravatar_id":"6323df9d71df870a699d50cb865a9e72","url":"https://api.github.com/users/rg3915","html_url":"https://github.com/rg3915","followers_url":"https://api.github.com/users/rg3915/followers","following_url":"https://api.github.com/users/rg3915/following{/other_user}","gists_url":"https://api.github.com/users/rg3915/gists{/gist_id}","starred_url":"https://api.github.com/users/rg3915/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rg3915/subscriptions","organizations_url":"https://api.github.com/users/rg3915/orgs","repos_url":"https://api.github.com/users/rg3915/repos","events_url":"https://api.github.com/users/rg3915/events{/privacy}","received_events_url":"https://api.github.com/users/rg3915/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rg3915/pythonclub.github.io","description":"Blog colaborativo sobre tecnologias que envolvam a linguagem Python","fork":true,"url":"https://api.github.com/repos/rg3915/pythonclub.github.io","forks_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/forks","keys_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/teams","hooks_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/hooks","issue_events_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/events","assignees_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/tags","blobs_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/languages","stargazers_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/stargazers","contributors_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/contributors","subscribers_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/subscribers","subscription_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/subscription","commits_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/issues/comments/{number}","contents_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/merges","archive_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/downloads","issues_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/labels{/name}","releases_url":"https://api.github.com/repos/rg3915/pythonclub.github.io/releases{/id}","created_at":"2014-05-14T01:48:33Z","updated_at":"2014-06-17T01:29:07Z","pushed_at":"2014-06-17T01:28:20Z","git_url":"git://github.com/rg3915/pythonclub.github.io.git","ssh_url":"git@github.com:rg3915/pythonclub.github.io.git","clone_url":"https://github.com/rg3915/pythonclub.github.io.git","svn_url":"https://github.com/rg3915/pythonclub.github.io","homepage":"http://pythonclub.com.br/","size":4367,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"pelican"}},"base":{"label":"pythonclub:pelican","ref":"pelican","sha":"ca39c437571da2ef49ce6c5d85da37bf01635640","user":{"login":"pythonclub","id":7243219,"avatar_url":"https://avatars.githubusercontent.com/u/7243219?","gravatar_id":null,"url":"https://api.github.com/users/pythonclub","html_url":"https://github.com/pythonclub","followers_url":"https://api.github.com/users/pythonclub/followers","following_url":"https://api.github.com/users/pythonclub/following{/other_user}","gists_url":"https://api.github.com/users/pythonclub/gists{/gist_id}","starred_url":"https://api.github.com/users/pythonclub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pythonclub/subscriptions","organizations_url":"https://api.github.com/users/pythonclub/orgs","repos_url":"https://api.github.com/users/pythonclub/repos","events_url":"https://api.github.com/users/pythonclub/events{/privacy}","received_events_url":"https://api.github.com/users/pythonclub/received_events","type":"Organization","site_admin":false},"repo":{"id":19123340,"name":"pythonclub.github.io","full_name":"pythonclub/pythonclub.github.io","owner":{"login":"pythonclub","id":7243219,"avatar_url":"https://avatars.githubusercontent.com/u/7243219?","gravatar_id":null,"url":"https://api.github.com/users/pythonclub","html_url":"https://github.com/pythonclub","followers_url":"https://api.github.com/users/pythonclub/followers","following_url":"https://api.github.com/users/pythonclub/following{/other_user}","gists_url":"https://api.github.com/users/pythonclub/gists{/gist_id}","starred_url":"https://api.github.com/users/pythonclub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pythonclub/subscriptions","organizations_url":"https://api.github.com/users/pythonclub/orgs","repos_url":"https://api.github.com/users/pythonclub/repos","events_url":"https://api.github.com/users/pythonclub/events{/privacy}","received_events_url":"https://api.github.com/users/pythonclub/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pythonclub/pythonclub.github.io","description":"Blog colaborativo sobre tecnologias que envolvam a linguagem Python","fork":false,"url":"https://api.github.com/repos/pythonclub/pythonclub.github.io","forks_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/forks","keys_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/teams","hooks_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/hooks","issue_events_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/events","assignees_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/tags","blobs_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/languages","stargazers_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/stargazers","contributors_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/contributors","subscribers_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/subscribers","subscription_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/subscription","commits_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/issues/comments/{number}","contents_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/merges","archive_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/downloads","issues_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/labels{/name}","releases_url":"https://api.github.com/repos/pythonclub/pythonclub.github.io/releases{/id}","created_at":"2014-04-24T20:39:08Z","updated_at":"2014-06-16T23:40:04Z","pushed_at":"2014-06-16T23:40:04Z","git_url":"git://github.com/pythonclub/pythonclub.github.io.git","ssh_url":"git@github.com:pythonclub/pythonclub.github.io.git","clone_url":"https://github.com/pythonclub/pythonclub.github.io.git","svn_url":"https://github.com/pythonclub/pythonclub.github.io","homepage":"http://pythonclub.com.br/","size":21548,"stargazers_count":35,"watchers_count":35,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":29,"mirror_url":null,"open_issues_count":10,"forks":29,"open_issues":10,"watchers":35,"default_branch":"pelican"}},"_links":{"self":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111"},"html":{"href":"https://github.com/pythonclub/pythonclub.github.io/pull/111"},"issue":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/issues/111"},"comments":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/issues/111/comments"},"review_comments":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111/comments"},"review_comment":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/pulls/111/commits"},"statuses":{"href":"https://api.github.com/repos/pythonclub/pythonclub.github.io/statuses/519e6666332a023b4fd1f443643525f8460f27ff"}}}}