🎯 Site oficial do Django (Documentação)
| # | Comando / Função / Parâmetro | O que faz | Exemplo |
|---|---|---|---|
| 1 | django-admin startproject | Cria um novo projeto Django | django-admin startproject meu_projeto |
| 2 | python manage.py startapp | Cria um novo app dentro do projeto | python manage.py startapp core |
| 3 | python manage.py runserver | Inicia o servidor de desenvolvimento | python manage.py runserver 8080 |
| 4 | python manage.py makemigrations | Cria arquivos de migração baseados nos models | python manage.py makemigrations |
| 5 | python manage.py migrate | Aplica as migrações ao banco de dados | python manage.py migrate |
| 6 | python manage.py createsuperuser | Cria um usuário administrador | python manage.py createsuperuser |
| 7 | python manage.py shell | Abre o shell interativo do Django | python manage.py shell |
| 8 | python manage.py collectstatic | Reúne arquivos estáticos para produção | python manage.py collectstatic |
| 9 | models.CharField() | Campo de texto curto | nome = models.CharField(max_length=100) |
| 10 | models.TextField() | Campo de texto longo | descricao = models.TextField() |
| 11 | models.IntegerField() | Campo de número inteiro | idade = models.IntegerField() |
| 12 | models.DateTimeField() | Campo de data e hora | criado_em = models.DateTimeField(auto_now_add=True) |
| 13 | models.BooleanField() | Campo booleano (True/False) | ativo = models.BooleanField(default=True) |
| 14 | models.EmailField() | Valida se o texto é um e-mail | email = models.EmailField() |
| 15 | models.ForeignKey() | Relacionamento Many-to-One | cat = models.ForeignKey(Categoria, on_delete=models.CASCADE) |
| 16 | models.ManyToManyField() | Relacionamento Many-to-Many | tags = models.ManyToManyField(Tag) |
| 17 | models.OneToOneField() | Relacionamento One-to-One | perfil = models.OneToOneField(User, on_delete=models.CASCADE) |
| 18 | models.ImageField() | Campo para upload de imagens | foto = models.ImageField(upload_to='fotos/') |
| 19 | models.FileField() | Campo para upload de arquivos gerais | doc = models.FileField(upload_to='docs/') |
| 20 | models.DecimalField() | Número decimal de precisão fixa | preco = models.DecimalField(max_digits=5, decimal_places=2) |
| 21 | models.SlugField() | Texto para URLs (letras, hífens, números) | slug = models.SlugField(unique=True) |
| 22 | null=True | Permite valor nulo no banco de dados | bio = models.TextField(null=True) |
| 23 | blank=True | Permite que o campo fique vazio em formulários | site = models.URLField(blank=True) |
| 24 | Model.objects.all() | Retorna todos os registros | Produtos.objects.all() |
| 25 | Model.objects.filter() | Filtra registros por critérios | User.objects.filter(is_staff=True) |
| 26 | Model.objects.exclude() | Exclui registros que casam com o critério | User.objects.exclude(email='') |
| 27 | Model.objects.get() | Retorna um único objeto (erro se 0 ou +1) | User.objects.get(id=1) |
| 28 | Model.objects.create() | Cria e salva um objeto em um passo | User.objects.create(username='leo') |
| 29 | Model.objects.get_or_create() | Retorna objeto ou cria se não existir | obj, created = Tag.objects.get_or_create(nome='Django') |
| 30 | Model.objects.order_by() | Ordena os resultados | User.objects.order_by('-date_joined') |
| 31 | Model.objects.count() | Conta o número de registros | Post.objects.count() |
| 32 | Model.objects.exists() | Verifica se existe algum registro | Post.objects.filter(slug='oi').exists() |
| 33 | Model.objects.first() | Retorna o primeiro registro do QuerySet | User.objects.all().first() |
| 34 | Model.objects.values() | Retorna dicionários em vez de instâncias | User.objects.values('username') |
| 35 | Model.objects.select_related() | Otimiza busca de FK (JOIN SQL) | Livro.objects.select_related('autor') |
| 36 | Model.objects.prefetch_related() | Otimiza busca ManyToMany ou reversa | Autor.objects.prefetch_related('livros') |
| 37 | __icontains | Busca por texto (case-insensitive) | User.objects.filter(nome__icontains='ana') |
| 38 | __gte / __lte | Maior ou igual / Menor ou igual | User.objects.filter(idade__gte=18) |
| 39 | __in | Filtra por uma lista de valores | User.objects.filter(id__in=[1, 2, 3]) |
| 40 | render() | Retorna um template renderizado | return render(request, 'index.html', context) |
| 41 | redirect() | Redireciona para outra URL ou view | return redirect('home') |
| 42 | get_object_or_404() | Busca objeto ou retorna erro 404 | post = get_object_or_404(Post, id=id) |
| 43 | HttpResponse() | Retorna resposta HTTP bruta | return HttpResponse("Olá Mundo") |
| 44 | JsonResponse() | Retorna resposta em formato JSON | return JsonResponse({'status': 'ok'}) |
| 45 | {% if %} | Bloco condicional no HTML | {% if user.is_authenticated %} |
| 46 | {% for %} | Loop para iterar listas | {% for item in lista %} |
| 47 | {% url %} | Gera URL a partir do nome da rota | {% url 'detalhe' post.id %} |
| 48 | {% extends %} | Herança de template pai | {% extends 'base.html' %} |
| 49 | {% block %} | Define área sobrescrevível | {% block content %}{% endblock %} |
| 50 | {% static %} | Caminho para arquivos estáticos | {% static 'css/style.css' %} |
| 51 | {% csrf_token %} | Proteção contra ataques CSRF (Forms) | <form>{% csrf_token %}... |
| 52 | {{ value|lower }} | Filtro: Converte para minúsculo | {{ nome|lower }} |
| 53 | {{ value|date }} | Filtro: Formata datas | {{ data|date:"d/m/Y" }} |
| 54 | admin.site.register() | Registra model no painel admin | admin.site.register(Post) |
| 55 | list_display | Colunas exibidas na lista do admin | list_display = ('id', 'titulo') |
| 56 | search_fields | Barra de busca no admin | search_fields = ('nome', 'email') |
| 57 | list_filter | Filtros laterais no admin | list_filter = ('status',) |
| 58 | forms.Form | Classe base para formulários manuais | class ContatoForm(forms.Form): |
| 59 | forms.ModelForm | Formulário baseado em um Model | class PostForm(forms.ModelForm): |
| 60 | form.is_valid() | Valida dados do formulário | if form.is_valid(): |
| 61 | form.cleaned_data | Dicionário de dados validados | email = form.cleaned_data['email'] |
| 62 | INSTALLED_APPS | Lista de apps ativos no projeto | INSTALLED_APPS = ['core', ...] |
| 63 | DATABASES | Configuração de conexão com banco | 'ENGINE': 'django.db.backends.postgresql' |
| 64 | MIDDLEWARE | Processadores de requisição/resposta | 'django.middleware.security.SecurityMiddleware' |
| 65 | TEMPLATES | Configuração de motores de template | 'DIRS': [BASE_DIR / 'templates'] |
| 66 | ALLOWED_HOSTS | Domínios permitidos para o app | ALLOWED_HOSTS = ['meusite.com'] |
| 67 | path() | Define uma rota URL | path('post/ |
| 68 | re_path() | Define rota usando Regex | re_path(r'^artigo/(?P<slug>[\w-]+)/$', views.artigo) |
| 69 | include() | Inclui URLs de outro app | path('blog/', include('blog.urls')) |
| 70 | authenticate() | Verifica credenciais de usuário | user = authenticate(username=u, password=p) |
| 71 | login() | Inicia sessão do usuário | login(request, user) |
| 72 | logout() | Encerra sessão do usuário | logout(request) |
| 73 | @login_required | Decorator para exigir login na view | @login_required def perfil(request): |
| 74 | LoginRequiredMixin | Exige login em Class Based Views | class MyView(LoginRequiredMixin, View): |
| 75 | request.user | Usuário logado na requisição atual | if request.user.is_authenticated: |
| 76 | request.method | Tipo de método HTTP (GET, POST...) | if request.method == 'POST': |
| 77 | request.FILES | Dicionário com arquivos enviados | form = PostForm(request.POST, request.FILES) |
| 78 | messages.success() | Envia mensagem de sucesso ao usuário | messages.success(request, 'Salvo!') |
| 79 | reverse() | Retorna a URL pelo nome no Python | url = reverse('home') |
| 80 | Model.get_absolute_url() | Método padrão para URL do objeto | def get_absolute_url(self): ... |
| 81 | Meta: unique_together | Garante unicidade de dois campos juntos | unique_together = ['sessao', 'ordem'] |
| 82 | Meta: verbose_name | Nome legível no singular (Admin) | verbose_name = 'Categoria' |
| 83 | Meta: ordering | Ordenação padrão do Model | ordering = ['-criado_em'] |
| 84 | python manage.py test | Executa testes automatizados | python manage.py test core |
| 85 | TestCase | Classe base para criar testes | class MyTest(TestCase): |
| 86 | F() expressions | Operações no banco sem carregar em Python | F('estoque') - 1 |
| 87 | Q() objects | Filtros complexos com OR/AND | Q(nome='A') | Q(nome='B') |
| 88 | django-admin help | Mostra ajuda de comandos | django-admin help migrate |
| 89 | STATIC_URL | Prefixo URL para arquivos estáticos | STATIC_URL = 'static/' |
| 90 | MEDIA_URL | Prefixo URL para arquivos de usuários | MEDIA_URL = '/media/' |
| 91 | LANGUAGE_CODE | Define o idioma do sistema | LANGUAGE_CODE = 'pt-br' |
| 92 | TIME_ZONE | Define o fuso horário | TIME_ZONE = 'America/Sao_Paulo' |
| 93 | @receiver(post_save) | Executa função após salvar Model (Signals) | @receiver(post_save, sender=User) |
| 94 | Model.objects.aggregate() | Cálculos sobre o QuerySet (Sum, Avg) | Model.objects.aggregate(Avg('preco')) |
| 95 | Model.objects.annotate() | Adiciona campos calculados por linha | User.objects.annotate(total_posts=Count('post')) |
| 96 | TemplateView | CBV simples para renderizar HTML | class HomeView(TemplateView): |
| 97 | ListView | CBV para listar objetos | class PostList(ListView): |
| 98 | DetailView | CBV para exibir um objeto detalhado | class PostDetail(DetailView): |
| 99 | CreateView | CBV para criar novo objeto | class PostCreate(CreateView): |
| 100 | UpdateView | CBV para editar objeto | class PostUpdate(UpdateView): |
| 101 | DeleteView | CBV para deletar objeto | class PostDelete(DeleteView): |
| 102 | FormView | CBV para processar formulários | class MyFormView(FormView): |
| 103 | request.POST.get() | Pega valor do POST de forma segura | request.POST.get('nome', 'Anonimo') |
| 104 | slugify() | Transforma string em slug | slugify("Olá Mundo") # ola-mundo |
| 105 | python manage.py dumpdata | Exporta dados do banco para JSON | python manage.py dumpdata > backup.json |
| 106 | python manage.py loaddata | Importa dados de um JSON | python manage.py loaddata backup.json |
| 107 | DEBUG = True | Ativa modo de erro detalhado | DEBUG = False # Produção |