quinta-feira, 8 de março de 2018

Tutorial 1 de 10

Codificando uma app simples

Foco: Criar uma aplicação básica de Enquetes.
Será constituída de 2 partes:
1-Uma página pública que permitirá que pessoas vejam as enquetes e votem nelas.
2-Um site de administração que permite adicionar, alterar e deletar enquetes.

Tendo o Django instalado, damos continuidade.
--------------------------------------------------------------------
O 1º passo é criar um projeto: Execute o comando:
Com o ambiente virtual ativado e a partir de dentro do diretório do ambiente virtual, digite:
django-admin startproject enquetes

Será gerada a seguinte estrutura:
enquetes/
    manage.py
    enquetes/
        __init__.py
        settings.py
        urls.py
        wsgi.py
--------------------------------------------------------------------
Para testar o servidor de desenvolvimento, acesse a pasta enquetes execute o comando:
python manage.py runserver

Teste acessando o seu browser: http://localhost:8000

E acesse a página de boas vindas do Django.

Dica: Caso deseje alterar a porta de acesso ao serviço, quando executar o runserver digite o número desejado na frente do comando runserver, veja:
python manage.py runserver 8080
--------------------------------------------------------------------
Agora, vamos criar um aplicativo de votação.
Cada app no Django consiste de um pacote Python que segue certa convenção.

Lembrando que as apps podem ficar em qualquer lugar dentro do seu Python Path.
Neste tutorial, a app enquete será criada ao lado do arquivo manage.py para que possa ser importado como um módulo de nível superior dentro do projeto, ao invés de ser um sub-módulo de enquetes.

Seguindo, acesse o diretório que contém o arquivo manage.py e digite o comando:
python manage.py startapp votacao

Será gerada a seguinte estrutura:
votacao/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
--------------------------------------------------------------------
Escrevendo a 1ª view
Acesse o arquivo votacao/views.py e codifique:
from django.http import HttpResponse
def index(request):
  return HttpResponse('Hello World. Você está no index de Votação!')

Para chamar esta view, temos que mapear a URL, e por isto precisaremos da URLconf. Para tal, crie uma URLconf no diretório votacao, crie um arquivo urls.py.
Codifique:
from django.urls import path
from . import views
urlpatterns = [
    path('', views.index, name='index'),
]

Agora é preciso configurar a url do projeto. Abra o arquivo enquetes/urls.py e codifique:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
    path('admin/', admin.site.urls),
    path('votacao/', include('votacao.urls')),
]

Para testar o código ative o servidor Web e acesse o endereço: http://localhost:8000/votacao/
Deverá ser exibida a mensagem:
'Hello World. Você está no index de Votação!'

Obs.: a função include() nos permite referenciar a outras URLconfs. Usa-se include() para incluir outros patterns de URLs.

Obs.: a função path() pode receber 4 argumentos, 2 obrigatórios e 2 não:
Obrigatórios: route e view,
Opcionais: kwargs, e name. Veja a seguir, mais detalhes.

Processamento: Quando digitamos a url no browser, como no exemplo acima, ele será avaliado pelo urls.py do projeto, que encontrará um path, codificado com votação, direcionando a seuquencia de pesquisa de urls para votacao.urls (dentro da app). O arquivo urls.py da app tem o path em branco, que transfere para a views.index a resposta. Com isto, no arquivo views.py, a função index responderá ao usuário com o HttpResponse.

Um pouco mais sobre os argumentos da função path():
-route: é uma string que contém um padrão de URL. Quando processa uma requisição, o Django inicia no 1º pattern em urlpatterns e segue lista abaixo, comparando a URL da requisição com cada pattern até encontrar um que se encaixa.

Entenda que o patterns não pesquisa parâmetros GET e POST, ou nome do domínio. Por exemplo, na requisição para https://www.example.com/myapp/, o URLconf procurará por myapp/. Na requisição para https://www.example.com/myapp/?page=3, o URLconf também procurará por myapp/.

-view: quando Django encontra um pattern que se encaixa com o solicitado, ele chama uma especificada função view com um objeto HttpRequest como o 1º argumento e qualquer valores capturados da rota como os argumentos keyword.

-kwargs: Argumentos nomeados arbitrários podem ser passados em um dicionário para a view de destino.

-name: nomear uma url permite que se referencie a ela de forma inequívoca de qualquer lugar do Django, inclusive das templates. Este recurso permite que faça alterações globais nos patterns de url de seu projeto enquanto modifica um único arquivo.
--------------------------------------------------------------------
Fonte: https://docs.djangoproject.com/pt-br/2.0/intro/tutorial01/
--------------------------------------------------------------------

Nenhum comentário:

Postar um comentário

Tutorial 10 de 10

Codificando uma app simples Continuando a alteração no admin... Personalizando a listagem da página de Administração: Vamos fazer melh...