O Django é um dos Frameworks web mais sólidos, seguros e produtivos do mercado. Se você quer criar sites, APIs, sistemas completos ou aplicações corporativas, aprender Django é um passo obrigatório no caminho profissional como dev Python.
📌 O que você vai aprender:
- O que é Django e por que ele é tão usado
- Como instalar e criar seu primeiro projeto
- Como funciona a arquitetura MTV
- Como criar rotas, views, modelos e templates
- Como conectar ao banco de dados
- Como criar um CRUD completo
- Como trabalhar com o Django Admin
- Como preparar o projeto para produção
🎯 O que é Django?
Django é um framework web full stack escrito em Python e baseado no padrão MTV (Model–Template–View). É conhecido por:
- Segurança robusta
- Produtividade altíssima
- Admin automático
- ORM poderoso
- Ecosistema maduro
- Documentação excelente
Empresas que usam Django:
⚙️ Instalando o Django
pip install django
Criando seu primeiro projeto:
django-admin startproject meu_projeto cd meu_projeto python manage.py runserver
Acesse no navegador: http://127.0.0.1:8000
🧱 Arquitetura MTV do Django
| Camada | Função |
|---|---|
| Model | Regras de dados, ORM e conexão com o banco |
| Template | Parte visual da aplicação |
| View | Lógica da aplicação |
🗂️ Criando um App no Projeto
python manage.py startapp blog
Agora registre o app em settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'blog',
]
📝 Criando uma View
Dentro de blog/views.py:
from django.http import HttpResponse
def home(request):
return HttpResponse("Bem-vindo ao meu blog!")
Rota no arquivo meu_projeto/urls.py:
from django.contrib import admin
from django.urls import path
from blog.views import home
urlpatterns = [
path('admin/', admin.site.urls),
path('', home),
]
📄 Trabalhando com Templates
Crie o arquivo:
blog/templates/blog/home.html
Conteúdo:
<h1>Bem-vindo ao meu blog!</h1> <p>Essa página é renderizada usando templates Django.</p>View usando template:
from django.shortcuts import render
def home(request):
return render(request, 'blog/home.html')
🗃️ Criando Models e Banco de Dados
from django.db import models
class Post(models.Model):
titulo = models.CharField(max_length=200)
conteudo = models.TextField()
criado_em = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.titulo
Gerando tabelas:
python manage.py makemigrations python manage.py migrate
🔥 Criando um CRUD Completo
Listar Posts
def listar_posts(request):
posts = Post.objects.all()
return render(request, 'blog/listar.html', {'posts': posts})
Template:
<h1>Posts</h1>
{% for post in posts %}
<h2>{{ post.titulo }}</h2>
<p>{{ post.conteudo|slice:":150" }}...</p>
<hr>
{% endfor %}
Criar Post
from django.shortcuts import redirect
def criar_post(request):
if request.method == "POST":
titulo = request.POST['titulo']
conteudo = request.POST['conteudo']
Post.objects.create(titulo=titulo, conteudo=conteudo)
return redirect('/posts/')
return render(request, 'blog/criar.html')
Formulário:
<form method="POST">
{% csrf_token %}
<input type="text" name="titulo" placeholder="Título"><br>
<textarea name="conteudo"></textarea><br>
<button type="submit">Salvar</button>
</form>
🏛️ Django Admin
python manage.py createsuperuserRegistrar model:
from django.contrib import admin from .models import Post admin.site.register(Post)
🚀 Preparando para Produção
- Definir DEBUG = False
- Configurar ALLOWED_HOSTS
- Servir arquivos estáticos com collectstatic
- Configurar Gunicorn ou uWSGI
- Usar Nginx como proxy reverso
- Usar PostgreSQL em produção
📚 Conclusão
Django é um dos frameworks mais completos e eficientes do mundo Python. Ele permite construir desde pequenos sites até grandes aplicações profissionais com segurança, velocidade e organização.
Tags: Django, Python, Desenvolvimento Web, Web Framework, Backend, MVC, MTV, REST API, Django REST Framework, ORM, Django Admin, Full Stack, Programação, CRUD, Banco de Dados, PostgreSQL, SQLite, Deploy Django, Tutorial Django, Curso Django, Framework Python, Desenvolvimento Backend, Segurança Web, Produtividade Python, Sites em Python

Comentários
Postar um comentário
Obrigado pelo seu feedback!