Baixar e instalar o Python (http://www.python.org)
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 é uma ferramenta para criar ambientes isolados do Python.
Permite uso de diversas versões do Python e dos pacotes dependendo do projeto.
Um conjunto de scripts para facilitar o a criação e uso dos virtualenvs.
pip install virtualenv
pip install virtualenvwrapper
pip install virtualenv
pip install virtualenvwrapperwin
Para projetos Django, recomenda-se a utilização de virtualenv
mkvirtualenv projeto1
workon projeto1
pip install django
Para a instalação de qualquer pacote Python, basta apenas executar o comando install no gerenciador de pacotes (pip):
Para criar um novo projeto basta executar o comando:
django-admin startproject projeto1
O comando irá criar uma pasta chamada projeto1 com os seguintes arquivos:
python manage.py startapp agenda
O comando irá criar uma pasta chamada agenda com seguintes itens:
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
Editar o arquivo agenda/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World')
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),
]
Executando o projeto
python manage.py runserver
Incluir no arquivo agenda/models.py
class Contato(models.Model):
nome = models.CharField(max_length=100)
email = models.EmailField()
Criar migração de estrutura do banco de dados
python manage.py makemigrations
python manage.py migrate
Aplicar migrações ao banco de dados
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
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
<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
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>
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')),
]
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
Executar projeto e abrir o endereço: http://localhost:8000/agenda