Criando um novo projeto DJango
Arquitetura

Instalação do Python e PIP
Windows
Baixar e instalar o Python (http://www.python.org)
Linux
O linux já possui suporte ao Python e ao PIP. Basta instalá-los pelo gerenciador de pacotes.
sudo apt-get install python python-pip
Virtualenv
Virtualenv é uma ferramenta para criar ambientes isolados do Python.
Permite uso de diversas versões do Python e dos pacotes dependendo do projeto.
Virtualenv Wrapper
Um conjunto de scripts para facilitar o a criação e uso dos virtualenvs.
Linux
Windows
Instalando o Virtualenv
pip install virtualenv
pip install virtualenvwrapper
pip install virtualenv
pip install virtualenvwrapperwin
Configurando o ambiente
Para projetos Django, recomenda-se a utilização de virtualenv
mkvirtualenv projeto1
workon projeto1
Instalando o Django
pip install django
Para a instalação de qualquer pacote Python, basta apenas executar o comando install no gerenciador de pacotes (pip):
Criando um novo projeto
Para criar um novo projeto basta executar o comando:
django-admin startproject projeto1
Arquivos do Projeto
O comando irá criar uma pasta chamada projeto1 com os seguintes arquivos:
- __init__.py - Modulo padrão do pacote (necessário para reconhecer a pasta como pacote Python)
- manage.py - Script para realizar tarefas administrativas no projeto
- settings.py - Configurações do projeto (BD, apps, etc.)
- urls.py - Configuração das URLs
- wsgi.py - Ponto de entrada do projeto (primeiro arquivo a ser carregado pelo servidor para executar o projeto no ambiente de produção)
Criando uma aplicação
python manage.py startapp agenda
O comando irá criar uma pasta chamada agenda com seguintes itens:
- __init__.py - Modulo padrão do pacote (necessário para reconhecer a pasta como pacote Python)
- admin.py - Configuração para o django-admin
- models.py - Contém as classes de domínio da aplicação.
- tests.py - Contém os testes específicos da aplicação
- views.py - Contém as visões do aplicação
- migrations (pasta) - Código de migração do banco de dados
Estrutura do projeto1

Configuração do Django
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'agenda',
]
Adicionar o app ao settings.py do projeto
Um simples Olá mundo
Editar o arquivo agenda/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World')
Um simples Olá mundo
Editar o arquivo projeto1/urls.py
from django.conf.urls import url
from django.contrib import admin
import agenda.views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', agenda.views.index),
]
Um simples Olá mundo
Executando o projeto
python manage.py runserver
Um simples Olá mundo

Criando um cadastro
Criando um cadastro
Incluir no arquivo agenda/models.py
class Contato(models.Model):
nome = models.CharField(max_length=100)
email = models.EmailField()
Criando um cadastro
Criar migração de estrutura do banco de dados
python manage.py makemigrations
python manage.py migrate
Aplicar migrações ao banco de dados
Criando um cadastro
from .models import Contato
def listar(request):
contatos = Contato.objects.all()
return render(request, 'agenda/contato_listar.html',
{'itens': contatos})
Acrescentar ao agenda/views.py
Criando um cadastro
from django.shortcuts import redirect
from django.core.urlresolvers import reverse
from django.forms.models import modelform_factory
ContatoForm = modelform_factory(Contato, fields=('__all__'))
def adicionar(request):
if request.method == 'POST':
form = ContatoForm(request.POST)
if form.is_valid():
form.save()
return redirect(reverse('contato_listar'))
else:
form = ContatoForm()
return render(request, 'agenda/contato_form.html', {'form': form})
Acrescentar ao agenda/views.py
Criando um cadastro
<table width="100%">
<tr>
<th>Nome</th>
<th>E-mail</th>
</tr>
{% for item in itens %}
<tr>
<td>{{ item.nome }}</td>
<td>{{ item.email }}</td>
</tr>
{% empty %}
<tr><td colspan="2" align="center">Lista vazia</td></tr>
{% endfor %}
</table>
<a href="{% url 'contato_adicionar' %}">Adicionar</a>
Criar arquivo agenda/templates/agenda/contato_listar.html
Criando um cadastro
Criar o arquivo
agenda/templates/agenda/contato_adicionar.html
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<button type="submit">Adicionar</button>
</form>
Criando um cadastro
Modificar arquivo projeto1/urls.py
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^agenda/', include('agenda.urls')),
]
Criando um cadastro
from django.conf.urls import url
from .views import *
urlpatterns = [
url(r'^$', listar, name='contato_listar'),
url(r'adicionar$', adicionar, name='contato_adicionar'),
]
Criar arquivo agenda/urls.py
Criando um cadastro
Executar projeto e abrir o endereço: http://localhost:8000/agenda
Primeiro Projeto Django
By Roldão Junior
Primeiro Projeto Django
Apresentação de como iniciar um novo projeto django
- 1,090