https://github.com/zokis/auladjango
https://github.com/zokis/auladjango
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/zokis/auladjango
- Owner: zokis
- Created: 2014-11-06T20:31:16.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-11-17T12:49:19.000Z (over 11 years ago)
- Last Synced: 2025-02-16T11:27:42.711Z (over 1 year ago)
- Language: Python
- Size: 203 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Instalação
========
Python 2.7
----------
Entre em https://www.python.org/downloads/ e faça o Download do python 2.7.8
Instale em `C:\Python27`
Padrão windows: Next.. Next.. Netx.. Ok.. Ok.. Finish..
Adicionar ao Path do Windows:
Pressione:
windows+Pause
Vá em:
* Configurações avançadas do Sistema
* Variáveis de Ambiente
* Encontre o Path em Variáveis do sistema
* Editar...
Coloque ao final a string:
```
";C:\Python27;C:\Python27\Scripts;"
```
Ok.. Ok.. Ok..
SetupTools
----------
Salve a URL https://bootstrap.pypa.io/ez_setup.py como "ez_setup.py"
Abra o CMD
vá na pasta onde se encontra o arquivo e execute:
```bash
python ez_setup.py
```
ZZzzZzzzZZzzz
Django 1.7
----------
Faça o Download do Django:
https://www.djangoproject.com/download/1.7.1/tarball/
Descompacte o Django em qualquer pasta
Abra o CMD entre na pasta descompactada do Django e execute:
```bash
python setup.py install
```
zzzzZZzzzz
Adicionar o django-admin.py ao path
Execute os mesmo passos para que foram feitos para executar o python ao path, mas adicione a string:
```
";C:\Python27\Lib\site-packeges\Django\bin"
```
para testar se funcionou tente executar no CMD:
```bash
django-admin
```
Testar se Funcionou
-------------------
Execute no CMD o python e tente importar o django
```python
import django
```
Criar o Projeto
===============
Crie uma pasta em `C:\` com o nome `django_contatos`
Abra o CMD e entre na pasta `cd C:\django_contatos` e execute:
```bash
django-admin startproject contatos
```
Para testar se o projeto esta funcionando entre na pasta `contatos` entro da pasta `django_contatos` pelo CMD e execute:
```python
python manage.py runserver
```
Criar a app Principal do Sistema
==========================
No CMD entre na pasta `C:\django_contatos\contatos\contatos` e execute:
```bash
django-admin startapp core
```
Abra o arquivo `settings.py` com qualquer editor de texto e adicione a string `'contatos.core'` ao `INSTALLED_APPS`
Definir os Modelos
================
Abra o aquivo `models.py` e crie os Modelos:
```python
class CategoriaEmpresa(models.Model):
categoria = models.CharField(max_length=100)
def __unicode__(self):
return self.categoria
class Empresa(models.Model):
nome = models.CharField(verbose_name=u'Nome', max_length=100)
telefone = models.CharField(verbose_name=u'Telefone', max_length=20)
falar_com = models.CharField(u'Falar com', max_length=125)
categoria = models.ForeignKey(CategoriaEmpresa, null=True, blank=True)
logradouro = models.CharField(u'Logradouro', max_length=255, null=True, blank=True)
numero = models.CharField(u'número', max_length=25, null=True, blank=True)
complemento = models.CharField(u'complemento', max_length=200, null=True, blank=True)
bairro = models.CharField(u'bairro', max_length=200, null=True, blank=True)
municipio = models.CharField(u'Município', max_length=200, null=True, blank=True)
cep = models.CharField(u'CEP', max_length=10, null=True, blank=True)
site = models.URLField(null=True, blank=True)
def __unicode__(self):
return self.nome
```
No CMD vá até a raiz do projeto (pasta onde está o arquivo `manage.py`) e execute:
```python
python manage.py syncdb
```
Ele irá perguntar se deseja criar um usuário digite: `yes`
Verficar se criou um arquivo chamado db.sqlite3 - Banco de dados, o nome é o definido na seguinte configuração do settings.py:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
```
Criando a Primeira View
=======================
Abra o arquivo `views.py` e crie as Views:
```python
# coding: utf-8
from django.views.generic import TemplateView
index = TemplateView.as_view(template_name='index.html')
```
Criando as URLs
=============
Abra o arquivo `urls.py` e deixe-o igual a este:
```python
from django.conf.urls import patterns, url
urlpatterns = patterns(
'',
url(r'^$', 'contatos.core.views.index', name="index"),
)
```
Criando o Template Inicial
==========================
Na pasta `core` crie uma pasta chamada `templates` e dentro dela um arquivo chamado `index.html` com o conteúdo:
```html
Início
Olá Mundo!!!
```
Com um editor de texto adicione no `settings.py`:
```python
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
```
Criando as views para a Categoria de Empresa
=====================================
Adicione ao arquivo `views.py`
```python
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from django.views.generic.list import ListView
from django.core.urlresolvers import reverse_lazy
from django.forms.models import modelform_factory
from contatos.core.models import CategoriaEmpresa
CategoriaEmpresaForm = modelform_factory(CategoriaEmpresa)
categoria_create = CreateView.as_view(
model=CategoriaEmpresa,
success_url=reverse_lazy('categoria_list'),
form_class=CategoriaEmpresaForm
)
categoria_delete = DeleteView.as_view(
template_name='confirm_delete.html',
model=CategoriaEmpresa,
success_url=reverse_lazy('categoria_list')
)
categoria_list = ListView.as_view(
model=CategoriaEmpresa,
paginate_by=15
)
categoria_update = UpdateView.as_view(
model=CategoriaEmpresa,
success_url=reverse_lazy('categoria_list')
)
```
Criando as URLS para a Categoria de Empresa
=====================================
Adicione ao arquivo `urls.py` as urls:
```python
# Categoria
url(r'^list/categoria/$', 'contatos.core.views.categoria_list', name="categoria_list"),
url(r'^create/categoria/$', 'contatos.core.views.categoria_create', name="categoria_form"),
url(r'^update/categoria/(?P\d+)/$', 'contatos.core.views.categoria_update', name="categoria_form"),
url(r'^delete/categoria/(?P\d+)/$', 'contatos.core.views.categoria_delete', name="categoria_delete"),
```
Criando os Templates de Categoria de Empresa
======================================
Na pasta `templates` cria um arquivo chamado `confirm_delete.html`:
```html
Deletar
{% csrf_token %}
Você tem certeza que deseja deletar "{{ object }}"?
```
Na pasta `templates` cria uma pasta chamada `core` dentro dela crie os arquivos:
`categoriaempresa_form.html`
```html
Formulário
{% csrf_token %}
{{ form.as_p }}
{% if not form.instance.pk %}
Cadastrar
{% else %}
Alterar
{% endif %}
```
`categoriaempresa_list.html`
```html
Listagem
categoria
deletar
{% for categoriaempresa in object_list %}
{{ categoriaempresa.categoria }}
X
{% endfor %}
{% if page_obj.has_previous %}
previous
{% endif %}
Página {{ page_obj.number }} de {{ page_obj.paginator.num_pages }}.
{% if page_obj.has_next %}
next
{% endif %}
```
Repita os passos para o Modelo de Empresa
===================================
Editar o Formulário da Empresa
==========================
Na pasta `core` crie um arquivo chamado `forms.py` com o conteúdo:
```python
# coding: utf-8
from django import forms
from contatos.core.models import CategoriaEmpresa, Empresa
class EmpresaForm(forms.ModelForm):
categoria = forms.ModelChoiceField(
queryset=CategoriaEmpresa.objects.all().order_by('-categoria'),
)
class Meta:
model = Empresa
```
No arquivo `views.py` importe o formulário recém criado:
```python
from contatos.core.forms import EmpresaForm
```
Substitua o `EmpresaForm` antigo pelo novo e apague o antigo
Deixando as Coisas Bonitas
======================
Na pasta `templates` crie um arquivo chamado `base.html` com o conteúdo:
```html
{% load staticfiles %}
{% block title %}Início{% endblock %}
{% block content %}Olá Mundo!!!{% endblock %}
```
Altere o conteúdo do arquivo `index.html` para:
```html
{% extends "base.html" %}
```
Faça o mesmo para todos os outros templates.
Exemplo `confirm_delete.html`:
```html
{% extends "base.html" %}
{% block title %}
Deletar {{ object }}
{% endblock %}
{% block content %}
{% csrf_token %}
Você tem certeza que deseja deletar "{{ object }}"?
{% endblock content %}
```
Dentro da Pasta `core` crie uma pasta chamda `static` com uma pasta dentro chamda `css`
Acesse http://bootswatch.com/flatly/bootstrap.min.css e salve o arquivo nessa pasta com o nome `bootstrap.min.css`
Altere o arquivo base.html` para:
```html
{% load staticfiles %}
{% block title %}Início{% endblock %}
{% block content %}Olá Mundo!!!{% endblock %}
```
Para criar botões de novo abra os templates de Listagem e adicionem um link:
```html
Nova Empresa
```
Faça a mesma coisa para Categoria de Empresa
Nos templates de listagem adicione as classes `"table table-bordered table-striped"` para as tabelas, ficando assim:
```html
...
...
...
```