Autor: Felipe Angeli

  • Entendendo os Comandos makemigrations e migrate no Django: Passo a Passo para Gerenciamento de Banco de Dados

    Introdução

    Quando trabalhamos com Django, um dos frameworks Python mais populares para desenvolvimento web, o gerenciamento de banco de dados é parte crucial da construção de aplicações robustas e escaláveis. Os comandos makemigrations e migrate são ferramentas essenciais para manipular o banco de dados de forma organizada, permitindo criar e atualizar tabelas sem precisar lidar diretamente com SQL. Este artigo é um guia passo a passo sobre como e quando usar esses comandos para aplicar alterações no banco de dados de maneira eficiente.


    Passo a Passo dos Comandos makemigrations e migrate:

    1- Configurando o Ambiente

    Antes de iniciarmos, certifique-se de que seu projeto Django está configurado e com um banco de dados conectado. O arquivo settings.py é onde configuramos o banco de dados. Vamos usar o exemplo com um banco SQLite:

    # Python
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }
    

    2- Criando ou Alterando um Model

    Imagine que você queira criar um modelo para armazenar dados de produtos em uma aplicação de e-commerce. No arquivo models.py da sua app, adicione a classe do modelo:

    # Python
    from django.db import models
    
    class Produto(models.Model):
        nome = models.CharField(max_length=100)
        preco = models.DecimalField(max_digits=10, decimal_places=2)
        estoque = models.IntegerField()
    
        def __str__(self):
            return self.nome
    

    3- Gerando uma Migração com makemigrations

    Agora que temos um novo modelo, precisamos criar uma migração, que é um arquivo de controle de versão para as mudanças no banco de dados. No terminal, dentro da pasta do projeto, execute:

    # Bash
    python manage.py makemigrations
    

    Esse comando cria um arquivo de migração na pasta migrations da sua app. Ele contém instruções para Django aplicar essas mudanças no banco de dados.

    4- Verificando o Arquivo de Migração

    Se desejar, você pode revisar o arquivo de migração gerado. Ele fica em nome_da_app/migrations/. Esse arquivo conterá algo como:

    # Python
    from django.db import migrations, models
    
    class Migration(migrations.Migration):
    
        initial = True
    
        dependencies = []
    
        operations = [
            migrations.CreateModel(
                name='Produto',
                fields=[
                    ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                    ('nome', models.CharField(max_length=100)),
                    ('preco', models.DecimalField(decimal_places=2, max_digits=10)),
                    ('estoque', models.IntegerField()),
                ],
            ),
        ]
    

    5- Aplicando a Migração com migrate

    Para atualizar o banco de dados com a estrutura criada, utilizamos o comando migrate:

    # Bash
    python manage.py migrate
    

    Esse comando verifica as migrações pendentes e as aplica ao banco de dados, criando ou atualizando tabelas conforme necessário.

    6- Modificando um Modelo Existente

    Caso deseje adicionar um campo ao modelo Produto, por exemplo, uma descrição, basta atualizar o modelo e gerar uma nova migração.

    # Python
    class Produto(models.Model):
        nome = models.CharField(max_length=100)
        preco = models.DecimalField(max_digits=10, decimal_places=2)
        estoque = models.IntegerField()
        descricao = models.TextField(null=True, blank=True)  # novo campo
    
        def __str__(self):
            return self.nome
    

    Em seguida, execute makemigrations e migrate novamente para aplicar a mudança:

    # Bash
    python manage.py makemigrations
    python manage.py migrate
    

    Conclusão

    Os comandos makemigrations e migrate são fundamentais para o desenvolvimento de aplicações Django, permitindo que possamos alterar a estrutura do banco de dados sem precisar manipular SQL diretamente. Com essas ferramentas, gerenciar o ciclo de vida do banco de dados torna-se mais seguro e prático. O uso eficiente desses comandos permite a criação de sistemas que acompanham a evolução da aplicação, mantendo a integridade dos dados e facilitando futuras implementações.

  • Uso do requirements.txt em Projetos Python

    Introdução

    O arquivo requirements.txt é essencial em projetos Python, especialmente em desenvolvimento colaborativo ou quando se trabalha com ambientes virtuais. Ele permite que as dependências de um projeto sejam facilmente instaladas em qualquer ambiente, garantindo que todos os colaboradores estejam usando as mesmas versões de bibliotecas e evitando problemas de compatibilidade. Além disso, facilita o processo de deploy em produção, tornando o ambiente de produção idêntico ao ambiente de desenvolvimento.


    Passo a Passo para Usar o requirements.txt

    1- Criando um Ambiente Virtual Para garantir que você tenha um ambiente isolado e controlado, é recomendável criar um ambiente virtual. Isso impede que as dependências do projeto afetem outros projetos.

    # Python
    python3 -m venv venv
    

    2- Ativando o Ambiente Virtual Após a criação do ambiente, ative-o. Em sistemas operacionais diferentes, o comando pode variar:

    ● No Windows:

    # Python
    venv\Scripts\activate
    

    ● No MacOS / Linux:

    # Python
    source venv/bin/activate
    

    3- Instalando Dependências do Projeto Com o ambiente virtual ativado, instale as bibliotecas necessárias. Por exemplo:

    # Python
    pip install flask numpy pandas
    

    4- Criando o requirements.txt Após instalar as bibliotecas, gere o arquivo requirements.txt com as dependências que foram instaladas no ambiente. Esse arquivo listará automaticamente as versões das bibliotecas utilizadas:

    # Python
    pip freeze > requirements.txt
    

    5- Instalando Dependências a Partir do requirements.txt Para configurar o ambiente de outra pessoa ou de produção com as mesmas dependências, utilize o requirements.txt. Com o ambiente virtual ativo, basta rodar o comando:

    # Python
    pip install -r requirements.txt
    

    6- Atualizando o requirements.txt Sempre que uma nova biblioteca é adicionada ao projeto, lembre-se de atualizar o requirements.txt para que todos os membros da equipe possam instalar as dependências corretamente:

    # Python
    pip freeze > requirements.txt
    

    Conclusão

    O requirements.txt é uma ferramenta simples, mas poderosa, que permite que desenvolvedores garantam consistência nas dependências de um projeto Python. Ele facilita a configuração de novos ambientes de desenvolvimento e produção e reduz problemas de compatibilidade. Usando o requirements.txt de forma adequada, o processo de desenvolvimento se torna mais fluido, seguro e eficiente, especialmente em projetos colaborativos e ambientes de produção.

  • Como Iniciar um Projeto Django: Um Guia Passo a Passo

    Django Start

    Introdução

    Django é um dos frameworks mais populares para desenvolvimento web em Python, conhecido por sua robustez, facilidade de uso e rapidez para construir aplicações web. Com o lema “The Web framework for perfectionists with deadlines” (O framework web para perfeccionistas com prazos), Django oferece uma estrutura que permite desenvolver aplicativos seguros e escaláveis com rapidez. Neste artigo, vamos explorar como iniciar um projeto Django, passando pelo ambiente virtual, instalação do Django e criação de uma aplicação básica. Ao final, você terá uma base sólida para expandir e construir aplicações mais complexas.

    Passo a Passo para Iniciar um Projeto Django

    É uma boa prática utilizar um ambiente virtual ao desenvolver em Python, pois ele ajuda a isolar as dependências do projeto. Para configurar, siga as instruções abaixo:

    # Python
    
    # Navegue até a pasta onde deseja criar seu projeto
    cd ~/meus-projetos
    
    # Crie o ambiente virtual (substitua "venv" pelo nome que preferir)
    python3 -m venv venv
    
    # Ative o ambiente virtual
    source venv/bin/activate  # Para Linux ou MacOS
    venv\Scripts\activate  # Para Windows
    
    

    Com o ambiente virtual ativado, todas as bibliotecas que instalarmos estarão contidas nesse ambiente, sem interferir com outras instalações Python no sistema.

    Passo 2: Instalando o Django

    Com o ambiente virtual ativo, o próximo passo é instalar o Django usando o comando abaixo:

    # Python
    pip install django
    

    Para verificar se a instalação foi bem-sucedida e ver a versão do Django instalada, execute:

    # Python
    django-admin --version
    

    Passo 3: Criando um Novo Projeto Django

    Agora, vamos criar um novo projeto Django. Esse projeto servirá como a estrutura principal para nossa aplicação web.

    # Python
    # Substitua "meuprojeto" pelo nome do seu projeto
    django-admin startproject meuprojeto
    cd meuprojeto
    

    Esse comando criará uma estrutura de pastas com a seguinte configuração:

    # Python
    meuprojeto/
    ├── manage.py
    ├── meuprojeto/
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        ├── asgi.py
        └── wsgi.py
    

    Passo 4: Rodando o Servidor de Desenvolvimento

    Com o projeto configurado, vamos iniciar o servidor de desenvolvimento para garantir que tudo está funcionando corretamente. Execute o seguinte comando:

    # Python
    python manage.py runserver
    

    Se tudo estiver funcionando, você verá uma mensagem indicando que o servidor está rodando. Abra seu navegador e acesse http://127.0.0.1:8000/ para ver a página inicial padrão do Django.

    Passo 5: Criando um Aplicativo Django

    No Django, um “aplicativo” representa uma parte da funcionalidade de um site. Vamos criar um aplicativo chamado blog como exemplo:

    # Python
    python manage.py startapp blog
    

    Esse comando criará uma nova pasta chamada blog dentro do diretório do projeto, contendo os arquivos necessários para o funcionamento do aplicativo.

    Passo 6: Configurando o Aplicativo no Projeto

    Para que o Django reconheça o novo aplicativo, precisamos adicioná-lo na configuração do projeto. Abra o arquivo settings.py e, na seção INSTALLED_APPS, adicione o nome do aplicativo:

    # Python
    # em meuprojeto/settings.py
    INSTALLED_APPS = [
        ...
        'blog',
    ]
    

    Passo 7: Criando a Primeira View

    Vamos criar uma view simples no aplicativo blog. No arquivo views.py dentro da pasta blog, adicione o seguinte código:

    # Python
    # blog/views.py
    from django.http import HttpResponse
    
    def homepage(request):
        return HttpResponse("Bem-vindo ao meu Blog!")
    

    Passo 8: Configurando a URL

    Para que a view esteja acessível, precisamos definir uma URL para ela. Crie um novo arquivo chamado urls.py na pasta blog e adicione o seguinte conteúdo:

    # Python
    # blog/urls.py
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.homepage, name='homepage'),
    ]
    

    Agora, abra o arquivo urls.py do projeto e inclua as URLs do aplicativo blog:

    # Python
    # meuprojeto/urls.py
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('blog.urls')),
    ]
    

    Passo 9: Testando a Aplicação

    Com tudo configurado, inicie novamente o servidor e acesse http://127.0.0.1:8000/. Se tudo foi feito corretamente, você verá a mensagem “Bem-vindo ao meu Blog!” na página inicial.

    # Python
    python manage.py runserver
    

    Conclusão:

    Com esse guia, você aprendeu o básico para iniciar um projeto Django: desde a configuração do ambiente virtual até a criação de um aplicativo com uma view simples. Django é uma ferramenta poderosa que oferece inúmeras funcionalidades para desenvolver aplicações robustas e escaláveis rapidamente. Com essa base, você está pronto para explorar mais sobre o framework e criar aplicações cada vez mais complexas!

Entrar