26 de mar de 2018

Tutorial de Python: Desenvolva seu primeiro aplicativo na linguagem

Keenan Payne

Já configuramos, instalamos um servidor LAMP em nossa máquina Ubuntu e otimizamos o servidor. Agora é hora de escrever nosso primeiro aplicativo Python. Por ora, vamos abordar os conceitos básicos de um aplicativo Python e falaremos um pouco a respeito do nosso banco de dados MySQL ou PostgreSQL.

Neste tutorial, para escrever os códigos Python, usarei o editor nano no terminal. Você pode usar o editor que quiser. Isso não alterará os resultados do que faremos aqui.

Observe que, ao contrário de muitas linguagens de programação populares, o Python usa a indentação de espaço em branco como um delimitador para blocos de código, em vez de palavras-chave tradicionais.

Isso permite que o Python tenha um código legível e força você a não escrever funções de linha única. Agora você está desenvolvendo seu próprio programa e, obviamente, não quer ter problemas causados ​​por quebras de linha ou indentação faltantes.

Leia: 8 motivos para aprender a programar em Python

Nosso primeiro arquivo .py

Vá até a pasta onde gostaria que ficasse seu primeiro arquivo Python e crie um chamado test.py. Agora, abra esse arquivo no editor e digite:

print "Hello, World!"

Salve o arquivo e, ainda no terminal, execute-o digitando python test.py. Você verá o resultado:

Essa é a forma mais simples de criar um aplicativo Python. Mas, e se quisermos executar o aplicativo sem que haja a necessidade de digitar python test.py todas as vezes? Nesse caso, teríamos que adicionar ao código:

#!/usr/bin/python
print "Hello, World!"

Essa linha permite que o arquivo localize o interpretador Python (que, por padrão, é a pasta /usr/bin/). Salve o arquivo. Agora é preciso alterar a permissão do arquivo para que ele possa ser executado pelo terminal. Execute o seguinte comando:

chmod +x test.py

Agora o programa funcionará ao digitar:

./test.py

Vamos adicionar uma variável e uma declaração condicional a nosso programa. A ideia é fazer com que a varável mantenha nosso primeiro nome (mude para o seu próprio nome aqui no nosso exercício) e que, em seguida, nossa declaração condicional verifique se o nome está correto. Se estiver, o programa dirá hello. Se não estiver, o programa pedirá pelo nome correto.

#!/usr/bin/python
name = "Keenan"
if name == "Keenan":  
  print ("Hello,", name)
  else:  
     print "Oh, well what is your name then?"

Vamos rodar nosso programa e ver os resultados.

Você verá algo parecido com isso. Agora, vamos editar nosso programa escrevendo o nome propositalmente errado. Isso nos ajudará a checar se a condicional está funcionando:

name = "Keenann"

Execute o programa e, talvez, você veja o seguinte:

Já sabemos que a declaração condicional está checando o nome e, se for diferente do valor esperado, o programa pedirá que ele seja corrigido.

Leia: Em 4 meses, ele foi da iniciação científica ao back-end de uma startup

Como escrever uma função simples

Vamos transformar nossa declaração condicional básica em uma função. Escreveremos a função com um único argumento, que será usado para armazenar nosso nome.

O programa perguntará se o nome está correto e, no próprio terminal, podemos responder sim ou não. Dependendo do nome estar correto ou não, o programa dará uma resposta específica.

#!/usr/bin/python

  def checkName(name):  
    checkName = input("Is your name " + name + "? ") 

    if checkName.lower() == "yes":    
      print("Hello,", name)  
    else:    
      print("We're sorry about that.")

checkName("Keenan")

Podemos definir nossa função utilizando a palavra-chave def seguida de um nome para ela (nesse exemplo, usaremos “checkName”). Dentro dessa nova função, declaramos um único argumento.

É isso que nos permite inserir informações necessárias. Depois disso, perguntamos se o nome está correto, o que pode ser realizado usando o método de input do Python.

Em seguida, é preciso criar uma condicional similar à que fizemos acima. Isso também servirá para checar se o nome inserido está correto. Se estiver, seja bem-vindo(a). Se não, pedimos desculpas. A primeira linha da condicional possui a maior alteração, porque checamos o que o usuário digitou - por meio do objeto checkName - para determinar sim ou não. Também fazemos com que a entrada do usuário seja em letras minúsculas, para que, independentemente da maneira como o “sim” for digitado (seja sim, SIM, sIm ou Sim), ele sempre será comparado da mesma forma.

No final do arquivo, estamos simplesmente executando a função criada e definindo nosso nome como parâmetro.

Agora é preciso executar nosso script e transitar pelas condicionais:

Vamos aprimorar nossa função digitando um nome diferente do que o programa espera. Para isso, é preciso apenas um linha adicional e uma linha alterada.

#!/usr/bin/python3

def checkName(name):
  checkName = input("Is your name " + name + "? ") 

  if checkName.lower() == "yes":    
    print("Hello,", name)  
  else:    
    name = input("We're sorry about that. What is your name again? ")    
    print("Welcome,", name)

checkName("Keenan")

Todas as nossas mudanças estão logo após a declaração. Em vez de simplesmente pedir desculpas ao usuário, atribuímos um novo valor ao parâmetro de nome, que capturará o novo nome para nosso usuário. Depois disso, damos as boas-vindas ao novo usuário.

Ao executar o aplicativo, você deve ver algo parecido com isto:

Como criar e acessar tabelas MySQL

Agora que escrevemos uma função simples, variáveis, inputs do usuário e declarações condicionais, vamos nos conectar ao banco de dados MySQL (instalado anteriormente) para armazenar e recuperar informações.

Antes de escrevermos qualquer código, é preciso ter certeza de que um driver MySQL já esteja instalado na máquina. Isso é feito pelo seguinte comando:

sudo apt-get install python-mysqldb

No entanto, antes de adicionar qualquer código Python que interaja com o MySQL, precisamos criar uma tabela de banco de dados. Execute MySQL no terminal e, depois, digite sua senha do MySQL:

mysql -u root -p

Agora, vamos criar um conjunto de dados no MySQL chamado “python”:

CREATE DATABASE python;

Vamos nos certificar de que estamos conectados a nosso novo banco de dados no terminal:

connect python

Depois disso, é preciso criar uma tabela chamada "usuários", com um campo para a ID e um campo para o primeiro nome:

CREATE TABLE users (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
  firstname VARCHAR(30) NOT NULL
);

Seu terminal ficará assim:

Já temos nosso conjunto de dados e tabelas. O próximo passo é criar um script de Python para que possamos acessá-lo e modificá-lo.

Abra test.py e adicione:

#!/usr/bin/python
import MySQLdb

# Setup MySQL Connection
db = MySQLdb.connect(host="localhost", user="root", passwd="YOURPASSWORD", db="python")
cursor = db.cursor()

# Insert a row into our table
cursor.execute("INSERT INTO users (firstname) VALUES ('Keenan')")

# Save changes to database
db.commit()

Depois de definirmos o caminho Python, importamos a ferramenta Python-MySQLdb que instalamos anteriormente. Isso fará com que nosso programa interaja com nosso conjunto de dados MySQL.

O próximo passo é criar um objeto chamado db, que armazenará nossa conexão ao MySQL. Certifique-se de que cada campo esteja utilizando seu respectivo host, nome de usuário, senha e banco de dados (a única coisa que deve ser alterada no final é a senha).

Agora, criaremos um objeto chamado cursor, que nos permitirá realizar consultas ao MySQL. Em seguida, usaremos esse objeto cursor para executar um comando MySQL para inserir uma linha no campo de usuários. Vou inserir meu primeiro nome no campo firstname. É preciso executar o comando db.commit() para garantir que as alterações sejam salvas.

Após salvarmos nosso arquivo, é preciso executar este comando no MySQL:

connect python
SELECT * FROM users;

Isso significa que inserimos com sucesso uma linha na tabela de usuários em nosso banco de dados. Agora, temos certeza de que nosso aplicativo Python está dialogando com o MySQL.

Leia: Como atingir seus objetivos de aprendizado do começo ao fim

Como criar e acessar tabelas PostgreSQL

Para interagir com um banco de dados PostgreSQL (abreviado em todo o artigo como "Postgres"), precisamos instalar uma ferramenta chamada psycopg2. Em seu terminal, digite:

sudo apt-get install python-psycopg2

Precisamos executar o Postgres no terminal para criar e acessar nossas tabelas, mas, antes disso, é necessário criar um usuário no Postgres. O primeiro passo é entrar como usuário padrão do Postgres:

sudo su - postgres

É preciso criar um conjunto de dados no Postgres chamado “python”:

createdb python

Vamos nos certificar de que estamos conectados a nosso novo banco de dados no terminal:

psql -d python

Precisamos criar um novo usuário e adicioná-lo ao conjunto de dados para podermos executar os comandos:

CREATE USER keenan WITH PASSWORD 'password';GRANT ALL PRIVILEGES ON DATABASE "python" to keenan;

Depois disso, é preciso criar uma tabela chamada "usuários", com um campo para a ID e um campo para o primeiro nome:

CREATE TABLE "users" ( 
  id SERIAL PRIMARY KEY, 
  firstname VARCHAR(30) NOT NULL 
);

Seu terminal ficará assim:

Já temos nosso conjunto de dados e tabelas. O próximo passo é criar um script de Python para que possamos acessá-lo e modificá-lo.

Abra test.py e adicione:

#!/usr/bin/python 
import psycopg2  

# Setup PostgreSQL Connection 
db = psycopg2.connect("host=localhost dbname=python user=keenan password=YOURPASSWORD")
cursor = db.cursor()

# Insert a row into our table 
cursor.execute("INSERT INTO users (firstname) VALUES ('Keenan')") # Save changes to database db.commit()

Depois de definirmos o caminho Python, importamos a ferramenta Psycopg2 que instalamos anteriormente. Isso fará com que o programa interaja com nosso conjunto de dados Postgres.

O próximo passo é criar um objeto chamado db que armazenará nossa conexão ao Postgres. Certifique-se de que cada campo esteja utilizando seu respectivo host, nome de usuário, senha e banco de dados (a única coisa que deve ser alterada no final é a senha).

Agora, criaremos um objeto chamado cursor, que nos permitirá realizar consultas ao Postgres. Em seguida, usaremos esse objeto cursor para executar um comando Postgres e inserir uma linha no campo de usuários. Vou inserir meu primeiro nome no campo firstname. É preciso executar o comando db.commit() para garantir que as alterações sejam salvas.

Após salvarmos nosso arquivo, é preciso executar este comando no Postgres:

su - postgres
psql python << EOF

SELECT * FROM users;
EOF

Isso significa que inserimos com sucesso uma linha na tabela users em nosso banco de dados. Agora, temos certeza de que nosso aplicativo Python está dialogando com o PostgreSQL.

Leia: Aprender Python ou R? Saiba o que levar em conta

A linha de chegada

Parabéns! Agora você possui um aplicativo Python que está se comunicando com seu banco de dados, armazenando variáveis, recebendo inputs do usuário e executando comandos de controles condicionais.

Você poderia expandir ainda mais seu programa pedindo o nome de cada usuário e armazenando essa informação no banco de dados. Isso empregaria mais complexidade ao processo.

Keenan Payne é desenvolvedor web na Asana. Quando não está pensando em CSS, geralmente está tentando surfar em algum lugar na Califórnia.

Artigo originalmente publicado no blog americano da Udacity

Keenan Payne