Darlan Nakamura
Robson Cruz
The web framework for perfectionists with deadlines.
/darlannakamura
/deadpyxel
O framework web para perfeccionistas com deadlines.
O que isso quer dizer?
Coleção de classes, métodos, procedimentos e bibliotecas para facilitar alguma tarefa de desenvolvimento web.
Entre outros recursos, Django possui:
Permite a criação de páginas web dinâmicas de maneira rápida e fácil.
O projeto Django surgiu para auxiliar equipes de jornalismo, que vivem sobre prazos apertados.
O setup inicial para um projeto Django é mínimo e extremamente rápido.
Cliente
djangoapp.com/home
http://submarinecablemap.com/
Servidor
djangoapp.com/home
Django framework
URL routing
Código python
Banco de dados
Template HTML
template com
informações solicitadas
São os responsáveis por realizar o processamento de requisições e respostas.
Pode ser entendido como um "plug-in" que altera globalmente como o Django trata as requisições.
A instalação do Django é "altamente complexa"
$ pip install django
$ python -m venv django-env # ou virtualenv django-env
$ source django-env/bin/activate # ou .\django-env\Scripts\activate no windows
# instalar o django
(django-env) $ pip install django
Para criar um novo projeto Django
$ django-admin startproject <project_name>
Vamos entender a estrutura do projeto gerado:
$ python manage.py startapp <app_name> # cria um novo app
$ python manage.py runserver # inicializa o django "dev server"
$ python manage.py migrate # realiza as tarefas pendentes do banco
Models são modelagens de objetos que possuem a característica de ser salvos em um Banco de Dados.
Pense nos models como os elementos de "negócio" da sua aplicação.
Tudo isso é feito utilizando o Django ORM
Uma vez criado, devemos deixar esse model visível para o Django.
$ python manage.py makemigrations <app_name>
Esse comando irá gerar os scripts SQL das mudanças realizadas no banco.
$ python manage.py migrate
$ python manage.py createsuperuser # cria um novo super-usuário
Registrar o model
Pode ocorrer a necessidade de resetar o server.
As urls definem os diferentes caminhos que uma requisição pode tomar na sua aplicação.
As views contém a "lógica" da aplicação, ou seja, o que deve ser feito em relação a cada requisição HTTP.
Uma view recebe uma requisição, realiza o processamento, e retorna uma resposta para o cliente.
Templates são arquivos já estruturados utilizados para exibir informações de maneira consistente.
A template engine do Django trabalha com uma hierarquia de diretório particular...
$ git init . # 1) inicializa o repositório git
# 2) configura as variáveis globais do git
$ git config --global user.name "Your Username"
$ git config --global user.email you@example.com
# criando um .gitignore
*.pyc
*~
__pycache__
myvenv
db.sqlite3
/static
.DS_Store
$ git status # checa o status do repositório local
# 4) adicionar nossas modificações a lista de modificações
$ git add --all . # ou git add .
# 5) realiza o commit das alterações
$ git commit -m "Primeiro blog em django, primeiro commit"
$ git remote add origin https://github.com/<github-username>/my-first-blog.git
$ git push -u origin master # envia essas mudanças para o github.com
$ pip3.6 install --user pythonanywhere
# 7) configurando o seu projeto no pythonanywhere
$ pa_autoconfigure_django.py <url_do_repositorio_git>
Querysets são basicamente o resultado de uma query realizada no bando de dados da sua aplicação.
Para tornar esses resultados ainda mais específicos podemos utilizar filtros, ordenações e muito mais.
Utilizando a Django Template Language podemos utilizar código e variáveis python dentro do HTML.
Isso facilita a tarefa de criar páginas com um mesmo trecho de código repetido, como blogs por exemplo.
Que tal realizarmos um "update" do nosso site no PythonAnywhere?
$ cd ~/<pythonanywhere-username>.pythonanywhere.com
$ git pull
Realize o reload do seu WebApp e cheque o resultado
São basicamente formulários criados a partir de um model existente na aplicação.
Isso permite uma sincronia e garantia de consistência na aplicação.
Todas as aplicações possuem alguma forma de listagem, de visão detalhada, remoção de conteúdo, etc.
Pensando nisso, o Django já possui views "genéricas" para facilitar o desenvolvimento.
Essas views genéricas já possuem grande parte da lógica necessária para as operações simples, como listar, remover, adicionar ou atualizar informações.
Django possui uma maneira muito fácil de deixarmos nossas urls fáceis de entender. O atributo slug é responsável por guardar e se tornar o "apelido" para o nosso post.
Se temos um post com o título: "O Python é a melhor linguagem do mundo", queremos que a url para esse post seja:
http://localhost:8000/post/o-python-e-a-melhor-linguagem-do-mundo
A maioria das aplicações hoje utilizam imagens. Inclusive a nossa, pois um post não é somente um monte de texto. O usuário pode e deve adicionar uma imagem para tornar o post mais chamativo.
Como será que é feito um blog profissional?
Você gostaria que nosso blog tivesse uma cara menos sofrida?
Robson imagem
sentdex
freeCodeCamp
thenewboston
Haroldo Teruya