O que é o Django?
Django é um framework web de alto nível, gratuito e de código aberto, escrito em Python, projetado para facilitar o desenvolvimento rápido de sites seguros e escaláveis. Ele segue o padrão "baterias incluídas", fornecendo ferramentas prontas para autenticação, painel administrativo e banco de dados, sendo ideal para projetos complexos e amplamente utilizado por empresas como Instagram.
Python e PIP são necessários, todos os comandos rodam no Terminal (Command Prompt)
Dicas
- Toda vez após instalar um pacote com o pip/Python, rode
pip freeze > requirements.txt
- Voce pode baixar todos os requerimentos com o comando
pip install -r requeriments.txt
- Significado das pastas
templates - html
static - css
- É recomendado o uso do VsCode para navegar e editar arquivos.
Começando
Crie uma pasta master no diretório desejado.
Ex:
C:\Users\usuario\Documents\master e continue o tutorial dentro desta pasta.
VirtualEnv (Ambiente Virtual)
Antes de começar, isolamos as dependências do projeto:
pip install virtualenv
python -m virtualenv venv
Para ativar (Windows):
venv\Scripts\activate
Instalando o Django
Com o ambiente ativo, execute:
pip install django
Para criar o projeto:
django-admin startproject setup .
Configurando Timezone e Linguagem
Vá até o arquivo e edite (com VsCode ou bloco de notas)
/setup/settings.py
Altere os valores respectivos para
LANGUAGE_CODE = 'en-us' → 'pt-br'
TIME_ZONE = 'UTC' → 'America/Sao_Paulo'
Protegendo Variáveis de Ambiente
Instale o pacote dotenv
pip install python-dotenv lembre-se de rodar depois da instalaçãopip freeze > requirements.txt
Agora no cabeçalho de /setup/settings.py adicione as seguintes importações
import os
from pathlib import Path
from dotenv import load_dotenvevite deixar importações repetidas.
Crie um arquivo .env no mesmo nível que /setup
Agora copie o valor da sua SECRET_KEY em /setup/settings.py e cole o no arquivo .env e remova as aspas.
Exemplo:
SECRET_KEY = 'django-insecure-3%g$tl^y%9#' → SECRET_KEY = django-insecure-3%g$tl^y%9#
Apague o valor da SECRET_KEY de /setup/settings.py e troque por
SECRET_KEY = str(os.getenv('SECRET_KEY')
Agora para evitar que esse tipo de dado sensível vá junto com os outros arquivos para o Github, utilizaremos o arquivo .gitignore, para isso, acesse o site: gitignore.io django.
Crie um arquivo na raiz chamado .gitignore e copie e cole tudo que você viu no gitignore.io django.
Pronto! Agora você já protegeu todos seus tipos de arquivos sensíveis quando for efetuar um commit no Github.
Seu Primeiro App
Um projeto Django pode ter diversos apps, para criar um app, execute o comando:
python manage.py startapp nome_do_app
Agora para que o Django saiba que você tem um App, vá até o arquivo
/setup/settings.pye na seção INSTALLED APPS escreva o nome do seu app.
Ex:
INSTALLED_APPS = [
...
'nome_do_app',
]
Criando uma View
No arquivo:
/nome_do_app/views.pyAltere o arquivo para from django.shortcuts import render
def index(request)
return render(request,'nome_do_app/index.html)
Este código define que ao receber uma requisição no método index, será retornado uma resposta do tipo Render (vai renderizar a página).
Isolando URLS
Crie um arquivo em:
/nome_do_app/ chamado urls.py e coloque este código: from django.urls import Path
from nome_do_app.views import index
urlpatterns =[
path('',index,name='index')
]
O atributo name serve de identificador, o Django utilizará disso para navegar entre templates.
Agora edite o arquivo do projeto:
/setup/urls.py para from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/',admin.site.urls),
path('',include('nome_do_app'.urls'))
]
Templates
Agora na raiz, crie uma pasta chamada templates. Uma boa prática é isolar os templates por app, neste caso, criaremos uma pasta nome_do_app dentro de:
/templates/ → /templates/nome_do_app
No arquivo:
/setup/settings.py na parte de TEMPLATES na chave 'DIRS' altere para o valor 'DIRS': [os.path.join(BASE_DIR, 'templates')],
Crie um arquivo .html dentro de:
templates/nome_do_app/ com o código desejado.Você pode baixar um arquivo html aqui.
Arquivos Estáticos
Crie uma pasta static em:
/setup/ agora em: /setup/settings.py e em abaixo do STATIC_URL coloque as seguintes diretivas: STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'setup/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Você pode baixar um arquivo css aqui.
Após colocarmos nosso arquivos estáticos (imagens, css, js etc.) dentro da pasta /setup/static, precisamos sinalizar para que o Django colete estes arquivos, para isso rode:
python manage.py collectstaticapós isso, o Django vai mapear todos estes arquivos para uma pasta na raiz /static este arquivo não deve ser modificado.