Django é um framework web livre e de código aberto construído em Python. Publicado pela primeira vez em 2005, o Django incorpora o lema de “desenvolvimento rápido e design limpo e pragmático”. O framework, implantado em um servidor web, pode produzir rapidamente um front-end web com recursos avançados, segurança e escalabilidade.
Qualquer aplicativo web depende de bancos de dados para seu conteúdo. O Django, sendo um framework moderno, suporta vários programas de banco de dados padrão, por exemplo, PostgreSQL, SQLite, MySQL, etc. Este guia mostrará como conectar um aplicativo Django a um banco de dados no MySQL.
Pré-requisitos
Para seguir este tutorial, você precisa atender a certas pré-condições antes de passar para o Django e a conexão com o banco de dados:
- Um servidor web adequado. Neste guia, usaremos um servidor Ubuntu.
- Um ambiente de desenvolvimento Python 3 configurado corretamente.
- Um aplicativo de banco de dados. Aqui está um guia detalhado sobre instalação e uso do MySQL.
Instalando e Configurando o Python 3
O Django é escrito em Python. A execução de qualquer aplicativo Python requer que os binários do Python estejam instalados no sistema. O Ubuntu vem com o Python instalado por padrão. Aqui, usaremos o Python 3. No terminal, execute os seguintes comandos. Primeiro, atualize o cache do APT e atualize (se disponível) todos os pacotes instalados:
|
1 |
$ sudo apt update && sudo apt upgrade -y |
O Python 3 está diretamente disponível nos servidores de pacotes oficiais do Ubuntu. O pacote
python-is-python3 cria um link simbólico binário python para
python3 para facilitar o uso:
|
1 |
$ sudo apt install python3 python-is-python3 |
Em seguida, verifique se a instalação foi bem-sucedida:
|
1 2 |
$ python3 --version $ python --version |
Depois disso, precisamos do pip. É o gerenciador de pacotes padrão do Python. Ele é responsável por gerenciar bibliotecas Python adicionais que não fazem parte da biblioteca padrão. Observe que estamos instalando o pip3 (para Python 3):
|
1 |
$ sudo apt install python3-pip |
Por fim, precisamos de alguns pacotes adicionais para um ambiente de programação robusto:
|
1 |
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev |
Instalando e Configurando o MySQL
Esta seção demonstrará brevemente a instalação e configuração do MySQL. Ele está disponível nos repositórios de pacotes padrão do Ubuntu:
|
1 |
$ sudo apt install mysql-server |
Se a instalação for bem-sucedida, o MySQL começará a rodar em segundo plano. Verifique se está funcionando corretamente:
|
1 |
$ systemctl status mysql |
O servidor MySQL está ativo e em execução. Agora podemos fazer a transição com segurança para o desenvolvimento do nosso aplicativo Django.
Trabalhando com o Django
-
Estabelecendo o aplicativo Django de exemplo
A base do nosso aplicativo web requer o esqueleto do projeto Django. Ele contém todas as ferramentas e bibliotecas necessárias para criar um aplicativo web robusto. Primeiro, criaremos um diretório dedicado para o nosso aplicativo Django. Recomenda-se nomear o diretório com algo significativo e consistente com o aplicativo que estamos prestes a construir. Nesta demonstração, nós o nomearemos como myDemoApp:
|
1 |
$ mkdir -pv myDemoApp |
Precisamos do módulo venv do Python para criar um ambiente virtual dentro do diretório. Instale o módulo usando o APT:
|
1 |
$ sudo apt install python3-venv |
Em seguida, navegue até o diretório e estabeleça um ambiente virtual. Para maior clareza, nomeamos o ambiente como demoapp_env:
|
1 |
$ python3 -m venv demoapp_env |
Em seguida, ative o ambiente virtual executando o activate script:
|
1 |
$ . demoapp_env/bin/activate |
Agora instalaremos o Django dentro deste ambiente virtual dedicado. Pip baixará e instalará alguns componentes adicionais:
|
1 |
$ pip install django |
O Django está instalado e pronto para ser usado. Chame o comando django-admin para criar um novo projeto Django. Depois disso, dê ao aplicativo um nome apropriado:
|
1 |
$ django-admin startproject demoapp |
Isso criará um projeto de demonstração com os arquivos e diretórios de projeto necessários no lugar:
|
1 |
$ ls -l |
O esqueleto do projeto está pronto. Em seguida, precisamos configurá-lo adequadamente para atingir nosso objetivo.
-
Editando as configurações do projeto Django
Todas as configurações do projeto são armazenadas no arquivo settings.py. Ele está localizado dentro do diretório do projeto Django. Começaremos definindo um fuso horário adequado e listando os hosts que podem se conectar ao aplicativo Django. Abra o arquivo de configuração em um editor de texto:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Role o script para baixo e encontre a entrada TIME_ZONE. Para demonstração, o fuso horário está definido como America/New_York:
|
1 |
$ TIME_ZONE = 'America/New_York' |
Para referência, o seguinte comando imprimirá todos os fusos horários suportados no Linux:
|
1 |
$ timedatectl list-timezones |
Em seguida, role até a entrada ALLOWED_HOSTS. Ela controla qual(is) máquina(s) pode(m) acessar o aplicativo. Para demonstração, ela contém apenas o localhost:
|
1 |
$ ALLOWED_HOSTS = ['localhost'] |
Em seguida, salve o arquivo e feche o editor. O próximo comando aplicará as alterações:
|
1 |
$ python manage.py migrate |
Agora, precisamos criar uma conta de administrador para o aplicativo web. Essa conta será usada para acessar a interface de administração do Django. Execute o seguinte comando:
|
1 |
$ python manage.py createsuperuser |
Será solicitado o nome de usuário, e-mail e senha. O aplicativo agora está pronto para se conectar ao banco de dados.
Conexão MySQL
-
Instalando conectores MySQL e bibliotecas de desenvolvimento
Para integrar o MySQL ao aplicativo Django, precisamos de algumas bibliotecas adicionais do Python 3 que fornecerão as ferramentas necessárias. Usaremos o conector de banco de dados mysqlclient. Ele é um fork do MySQLdb.
Certifique-se de que temos o python3-dev instalado:
|
1 |
$ sudo apt install python3-dev |
Também precisamos de alguns cabeçalhos e bibliotecas adicionais do Python e do MySQL:
|
1 |
$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev |
Após a conclusão da instalação, use o pip para instalar o módulo Python mysqlclient. Ele pode gerar algumas mensagens de erro que podem ser ignoradas:
|
1 |
$ pip install mysqlclient |
-
Configurando um banco de dados dedicado
O próximo passo é configurar um banco de dados dedicado e um usuário de banco de dados para o nosso aplicativo Django. Inicie o shell do MySQL como o usuário root:
|
1 |
$ sudo mysql -u root |
Para verificar todos os bancos de dados disponíveis no momento, execute a seguinte consulta:
|
1 |
$ SHOW DATABASES; |
Vamos criar um banco de dados dedicado para o nosso aplicativo Django. Dê a ele um nome apropriado que seja consistente com o nome do projeto:
|
1 |
$ CREATE DATABASE demoapp_data; |
Em seguida, verifique a criação:
|
1 |
$ SHOW DATABASES; |
Agora, crie um usuário MySQL dedicado. Configuraremos este usuário como o proprietário do banco de dados. O aplicativo Django usará as credenciais deste usuário para trabalhar com o banco de dados MySQL:
|
1 |
$ CREATE USER 'demoapp_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password123'; |
Dê ao usuário demoapp_user permissão total sobre o banco de dados demoapp_data:
|
1 |
$ GRANT ALL ON demoapp_data.* TO 'demoapp_user'@'%'; |
Para que as alterações de permissão entrem em vigor, recarregue as tabelas de privilégios do MySQL:
|
1 |
$ FLUSH PRIVILEGES; |
O banco de dados agora está pronto para ser conectado ao aplicativo Django.
-
Conectando o banco de dados ao aplicativo Django
Finalmente, configuraremos o aplicativo Django para usar o banco de dados para armazenamento de dados. Abra o script de configuração settings.py:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Role para baixo até a entrada DATABASES e insira o seguinte código:
|
1 2 3 4 5 6 7 8 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': '/etc/mysql/my.cnf', }, } } |
Salve o arquivo e feche o editor. O próximo passo é definir o arquivo de configuração descrito no código anterior. Use sudo para abrir o arquivo de texto no local descrito:
|
1 |
$ sudo nano /etc/mysql/my.cnf |
Este arquivo de configuração conterá informações sobre o banco de dados dedicado ao Django e o usuário que criamos no servidor MySQL. Adicione as seguintes linhas no final do arquivo:
|
1 2 3 4 5 |
[client] database = demoapp_data user = demoapp_user password = password123 default-character-set = utf8 |
Para que as alterações entrem em vigor, temos que reiniciar o servidor MySQL:
|
1 2 |
$ sudo systemctl daemon-reload $ sudo systemctl restart mysql |
-
Testando a conexão com o MySQL
Agora é hora de verificar se a conexão com o MySQL está funcionando corretamente. Se o servidor Django rodar sem problemas, então a conexão está funcionando bem. Caso contrário, há algo errado. Primeiro, aplique todas as alterações feitas no projeto Django:
|
1 |
$ python manage.py migrate |
Agora, vá para o seguinte diretório do projeto e inicie o servidor Django:
|
1 2 |
$ cd ~/myDemoApp/demoapp $ python manage.py runserver <server_ip_address>:8000 |
Em seguida, tente acessar o servidor a partir de um navegador web:
|
1 |
$ http://<server_ip_address>:8000 |
Voilá! Chegamos com sucesso à página de sucesso do Django. Isso também verifica que a conexão com o MySQL está funcionando corretamente. Após a conclusão da tarefa, você pode sair do ambiente virtual com segurança:
|
1 |
$ deactivate |
Considerações Finais
Neste guia, você aprendeu o básico sobre como combinar o Django e o MySQL. Criamos um aplicativo Django e mostramos como conectá-lo a um banco de dados MySQL. A mágica está no arquivo de configuração do Django settings.py. Também modificamos algumas configurações básicas como ALLOWED_HOSTS e TIME_ZONE. O Django é incrivelmente flexível. Além do MySQL, ele também suporta outros servidores SQL como o PostgreSQL, motores de servidor como o Nginx, etc.
Você também pode conferir nossos guias sobre as melhores práticas para instalar, configurar e trabalhar com o Django:
- Instalando o Django Web Framework no Ubuntu 20.04
- Configurando o Django com PostgreSQL, Nginx e Gunicorn no Ubuntu 20.04
- Criando Modelos Django: Um Tutorial
Feliz Computação!





Comentários
Nenhum comentário ainda. Seja o primeiro.