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 virtualenvwrapperpip install virtualenv
pip install virtualenvwrapperwinConfigurando o ambiente
Para projetos Django, recomenda-se a utilização de virtualenv
mkvirtualenv projeto1
workon projeto1Instalando o Django
pip install djangoPara 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 projeto1Arquivos 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 runserverUm 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 makemigrationspython manage.py migrateAplicar 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,097