Explorando Flask SQLite
Neste artigo, vamos mergulhar no Flask SQLite e explorar como ele simplifica a integração do banco de dados em seus aplicativos Flask. Ao usar o Flask SQLite, você pode aproveitar o poder de um banco de dados relacional sem a necessidade de configuração ou administração complexa.
O SQLite é um sistema de gerenciamento de banco de dados independente e baseado em arquivo que não requer nenhuma configuração ou instalação. Ele é leve, rápido e eficiente, o que o torna uma excelente opção para aplicativos da Web menores que não exigem todo o poder de um sistema de gerenciamento de banco de dados tradicional, como MySQL ou PostgreSQL.
Configurando Flask SQLite
Antes de começar a usar o Flask SQLite, você precisa instalar as dependências necessárias. O Flask SQLite é construído sobre o módulo SQLite3 , que está incluído na biblioteca padrão do Python. Portanto, nenhuma instalação adicional é necessária.
Você pode criar um banco de dados SQLite chamado ' database.db ' e, em seguida, criar uma tabela chamada ' alunos ' nele.
import sqlite3
my_conn = sqlite3.connect('flaskdatabase.db')
print("Opened database successfully")
my_conn.execute('CREATE TABLE employees (ename TEXT, address TEXT, city TEXT, age TEXT, salary TEXT)')
print("Table created successfully")
my_conn.close()
Seu aplicativo Flask inclui três funções View. A função inicial new_employee() está vinculada à regra de URL (' /addnew ') e exibe um arquivo HTML que contém um formulário para inserir informações do funcionário.
@app.route('/enternew')
def new_employee():
   return render_template(‘employee.html')
O código para o documento HTML ' Employee.html ' é apresentado abaixo.
<html>
   <body>
      <form action = "{{ url_for('addrec') }}" method = "POST">
         <h3>Student Information</h3>
         Name<br>
         <input type = "text" name = "ename" /></br>
         Address<br>
         <textarea name = "add" ></textarea><br>
         City<br>
         <input type = "text" name = "city" /><br>
         Age<br>
         <input type = "text" name = "age" /></br>
         Salary<br>
         <input type = "text" name = "salary" /><br>
         <input type = "submit" value = "submit" /><br>
      </form>
   </body>
</html>
Você pode observar que os dados do formulário são enviados para a URL '/addrec', que está associada à função addrec() . A função addrec() recebe os dados do formulário através do método POST e depois os insere na tabela de alunos. Após a operação de inserção, uma mensagem indicando sucesso ou erro é exibida no arquivo 'output.html'.
@app.route('/addrec',methods = ['POST', 'GET'])
def addrec():
   if request.method == 'POST':
      try:
         ename = request.form['ename']
         addr = request.form['add']
         city = request.form['city']
         age = request.form['age']
         salary = request.form['salary']
         with sql.connect("flaskdatabase.db") as con:
            cur = con.cursor()
            cur.execute("INSERT INTO employees (ename,addr,city,age,salary) VALUES (?,?,?,?,?)",(ename,addr,city,age,salary) )
            con.commit()
            msg = "Record successfully added"
      except:
         con.rollback()
         msg = "error in insert operation"
      finally:
         return render_template("output.html",msg = msg)
         con.close()
No código HTML de ' output.html ', há uma instrução de escape {{msg}} que exibe o resultado da operação de inserção para você.
<!doctype html>
<html>
<body>
Output of addition : {{ msg }}
<h2><a href = "\">go back to home page</a></h2>
</body>
</html>
Outra função chamada list() está presente no aplicativo, que é representada pela URL '/list'. Esta função preenche 'rows' como um objeto MultiDict que compreende todos os registros presentes na tabela de funcionários. Posteriormente, esse objeto é transferido para o modelo list.html.
@app.route('/list')
def list():
   con = sql.connect("flaskdatabase.db")
   con.row_factory = sql.Row
   cur = con.cursor()
   cur.execute("select * from employees")
   rows = cur.fetchall(); 
   return render_template("list.html",rows = rows)
O ' list.html ' serve como um template, que percorre o conjunto de linhas e apresenta os dados em formato de tabela HTML .
<!doctype html>
<html>
   <body>
      <table border = 4>
         <thead>
            <td>Name</td>
            <td>Address>/td<
            <td>city</td>
            <td>Age</td>
            <td>Salary</td>
         </thead>
         {% for row in rows %}
            <tr>
               <td>{{row["ename"]}}</td>
               <td>{{row["addr"]}}</td>
               <td> {{ row["city"]}}</td>
               <td> {{ row["age"]}}</td>
               <td>{{row['salary']}}</td>
            </tr>
         {% endfor %}
      </table>
      <a href = "/">Go back to home page</a>
   </body>
</html>
Por fim, ao acessar a regra de URL ' / ' em seu navegador, ela exibe um arquivo first.html 'que serve como ponto inicial da aplicação.
@app.route('/')
def first():
   return render_template('first.html')
Para executar este script a partir do shell Python, execute-o e inicie o servidor de desenvolvimento. Em seguida, abra seu navegador e digite http://localhost:5000/ na barra de endereço para acessar um menu simples que aparece a seguir:

Para abrir o Formulário de informações do funcionário, clique no link que diz 'Adicionar novo registro'.

Insira as informações necessárias nos campos do formulário e envie-o. Depois disso, a função relevante adicionará o registro à tabela de funcionários.

Retorne à página inicial e clique no link 'Mostrar lista'. Isso exibirá a tabela contendo os dados de amostra.

Benefícios do Flask SQLite
- O SQLite é um mecanismo de banco de dados leve que opera sem a necessidade de um processo de servidor separado. Ele armazena dados em um único arquivo, facilitando o gerenciamento e a implantação. O Flask SQLite aproveita as vantagens do SQLite, fornecendo uma solução de banco de dados eficiente e sem servidor.
- O Flask SQLite elimina a necessidade de configuração e administração de bancos de dados complexos. Com o SQLite, você não precisa instalar e configurar um servidor de banco de dados separado. A integração com o Flask é perfeita, permitindo que você se concentre na criação de seu aplicativo, em vez de lidar com as complexidades da configuração do banco de dados.
- O Flask SQLite não requer nenhuma configuração adicional ou dependências externas. Como o SQLite está incluído na biblioteca padrão do Python, você pode começar a usá-lo imediatamente em seu projeto Flask sem a necessidade de instalações ou configurações separadas.
- Os bancos de dados SQLite são independentes em um único arquivo. Isso simplifica o gerenciamento do banco de dados, pois você só precisa gerenciar um único arquivo para os dados do seu aplicativo. O Flask SQLite fornece métodos convenientes para estabelecer conexões, executar consultas e gerenciar transações, permitindo operações de gerenciamento de dados eficientes.
- Os bancos de dados SQLite são altamente portáteis e podem ser movidos facilmente entre diferentes ambientes ou plataformas. Você pode desenvolver seu aplicativo Flask usando SQLite localmente e, em seguida, implantá-lo perfeitamente em diferentes servidores sem se preocupar com compatibilidade de banco de dados ou problemas de migração.
- SQLite é projetado para simplicidade e eficiência. Ele funciona bem para aplicativos de pequeno a médio porte e pode lidar com uma quantidade substancial de dados e conexões simultâneas. O Flask SQLite fornece uma interface de alto desempenho para interagir com bancos de dados SQLite, garantindo operações eficientes de recuperação e manipulação de dados.
- Os bancos de dados SQLite são compatíveis com várias plataformas e linguagens de programação. Isso significa que, se você decidir mudar do Flask para outra estrutura ou linguagem no futuro, poderá migrar facilmente seu banco de dados SQLite sem grandes alterações. O Flask SQLite garante compatibilidade e transições suaves, proporcionando flexibilidade para o crescimento futuro do seu aplicativo.
Conclusão
Resumindo, se você está procurando um framework leve e amigável para o desenvolvimento de aplicações web, o Flask SQLite é uma excelente opção a se considerar. Essa combinação oferece flexibilidade, facilidade de uso e bom desempenho para projetos de pequeno a médio porte. A sintaxe e a estrutura intuitivas do Flask o tornam fácil de entender e usar. O pequeno consumo de memória do SQLite e os recursos de criptografia integrados garantem a segurança e a eficiência do banco de dados para aplicativos da web. Além disso, a portabilidade do SQLite permite que você implante seu aplicativo facilmente em diferentes ambientes. No geral, o Flask SQLite é uma escolha confiável e popular para o desenvolvimento de aplicativos da Web que exigem flexibilidade, facilidade de uso e bom desempenho.
