Python e Django – Parte 01: Criação de um projeto, configuração e criação de uma URL

Trabalhar no ambiente virtual Django2019 (Linux):

$ source /opt/virtualenv/django2019/bin/activate

Trabalhar no ambiente virtual Django2019 (Windows):

workon django2019

Criando um projeto:

$ django-admin startproject Adocao

No Adocao/settings.py alterar configurações para o português do Brasil:

LANGUAGE_CODE = ‘pt-br’

TIME_ZONE = ‘America/Sao_Paulo’

Executar a criação de tabelas no banco e do conteúdo necessário para o gerenciamento do próprio Django

$ python manage.py migrate

Crie um Super Usuário para você (administrador):

$ python manage.py createsuperuser

Iniciar o servidor Django (padrão porta 8000)

$ python manage.py runserver

Se preferir, pode utilizar outra porta

$ python manage.py runserver 8080 (para definir, por exemplo, a porta 8080)

Outro IP

$ python manage.py runserver x.x.x.x:8000 (para rodar na rede local/Internet)

Ou de forma automática com seu IP da rede local

$ python manage.py runserver 0:8000 (para rodar na rede local/Internet)

Criando seu primeiro módulo (app) no projeto

$ python manage.py startapp animais

Registre seu app no seu projeto

É necessário ativar seu app no projeto lá no arquivo Adocao/settings.py. 

INSTALLED_APPS = [

‘animais.apps.AnimaisConfig’,

‘django.contrib.admin’,


Criando a primeira tela com classes (método mais utilizado desde a versão 2), conhecido como Class-based Views para realizar as tarefas do seu sistema, como inserir, cadastrar, exibir uma página, etc.

No arquivo Adocao/animais/views.py importe a classe genérica para exibir uma página simples e depois crie sua primeira classe para “renderizar” um template (HTML):

from django.views.generic import TemplateView

# Create your views here.

class IndexView(TemplateView):

template_name = “index.html”

Como funcionam as classes dentro do “views”:

class NomeDaPaginaView(ClassePai):

template_name = “sua_pagina.html”

Criando um template em HTML para ser usado pelas Views

Primeiro altere a configuração do arquivo Adocao/Adocao/settings.py lá na configuração dos templates:

Procure por: ‘DIRS’: [],

E troque por: ‘DIRS’: [ os.path.join(BASE_DIR, ‘templates’) ],

Agora crie uma pasta chamada ‘templates’ dentro da pasta da sua aplicação ‘animais’. Dentro dela você pode criar as páginas HTML que vai usar como suas telas (templates). Por exemplo: animais/templates/index.html

Definindo as URLS do seu sistema

Por padrão, os endereços ficam registrados nos arquivos urls.py. Cada app pode ter seus próprios endereços e o seu Projeto (Adocao) também pode ter as suas. 

Primeiro crie o arquivo “urls.py” dentro do seu app: animais/urls.py. 

Faça a importação da biblioteca que gerencia as urls e das classes/métodos criados nos views. 

from django.urls import path

from .views import IndexView

Crie uma url dentro do vetor de urls desse app. Os parâmetros são (nessa ordem): endereço, método/classe do views, nome da url no sistema.

urlpatterns = [

path(”, IndexView.as_view(), name=”index”),

]

Exemplo:

path(‘inicio’, IndexView.as_view(), name=”index”),

Adicione as URLS do app como URLS do projeto

Edite o arquivo Adocao/urls.py e inclua a biblioteca “include” depois de importar a biblioteca “path”.

from django.urls import path, include

Dentro da sua lista de urls, adicione um nome padrão para importar todas as suas urls do app

urlpatterns = [

path(”, include(‘animais.urls’)),

path(‘admin/’, admin.site.urls),

]

Definindo o diretório STATIC para armazenar seu CSS, imagens, JS, etc.

Dentro do diretório Adocao crie uma pasta chamada “static”. 

Ela vai armazenar todo esse seu conteúdo. Somente os arquivos HTML ficam dentro da pasta template de cada app porque eles podem ser exclusivos daquele app. A ideia da pasta static é disponibilizar as imagens, js e css para todos os apps e não somente um.

No arquivo Adocao/settings.py acrescente uma configuração para o Django procurar a pasta static na raiz do seu projeto (você pode ter várias pastas statics no seu PC):

STATICFILES_DIRS = [

os.path.join(BASE_DIR, “static”),

]

Na primeira linha de todo arquivo HTML você precisa importar a pasta static do seu projeto:

{% load static %}

Agora é só usar conforme o exemplo abaixo para referenciar o local dela:

<img strc=”{% static “img/example.jpg” %}” alt=”My image”/>

Reaproveitando um template

No Django é possível reutilizar um arquivo html (template) reescrevendo apenas algumas partes dele. Para isso, crie blocos de código no seu arquivo de modelo. Por exemplo:

modelo.html
<!DOCTYPE html>

<html lang=”pt-br”>

  <head>

    <meta charset=”utf-8″>

    …

  </head>

  <body>

  {% block menu %}

    <div class=”header”>

    </div>

  {% endblock %}

  {% block conteudo %}

    <div class=”container”>

    </div>

  {% endblock %}

  {% block rodape %}

    <div class=”footer”>

    </div>

  {% endblock %}

  </body>

</html>

No seu arquivo que deve ser igual a este anterior, pasta “extender” ele como se fosse uma herança e depois só é necessário reescrever os blocos que você quer alterar. Exemplo:

pagina_inicial.html

{% extends ‘modelo.html’ %}

{% block conteudo %}

  <div class=”container”>

    <div class=”row”>

      <div class=”col-sm pt-5″>

        <h3>Mah oe :D</h3>

       </div>

    </div>

  </div>

{% endblock %}

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *