Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Atualização do projeto django #79

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
4 changes: 3 additions & 1 deletion SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,14 @@
- [Por que você precisa de um framework?](django/porque_um_framework.md)
- [O que acontece quando alguém solicita um site do seu servidor?](django/solicitando_o_site.md)
- [Seu primeiro projeto Django](django/primeiro_projeto.md)
- [Instalando o Django](django/instalando_django/instalando.md)
- [Iniciando o projeto](django/iniciando_um_projeto/iniciando_projeto.md)
- [Configurando](django/configurando.md)
- [Instalando o banco de dados](django/instalando_banco_de_dados.md)
- [Modelos do Django](django/modelos_introducao.md)
- [Objetos](django/objetos.md)
- [Modelo do Django](django/modelos.md)
- [Criando uma aplicação](django/modelos_criando_aplicacao.md)
- [Criando uma aplicação](django/criando_uma_aplicacao/criando_uma_aplicacao.md)
- [Criando um modelo](django/modelos_criando_modelo.md)
- [Criando tabelas](django/modelos_criando_tabela.md)
- [Administração](administracao.md)
Expand Down
4 changes: 2 additions & 2 deletions administracao.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Administração

Para adicionar, editar e remover postagens que nós criamos usaremos o Django admin. Vamos abrir o arquivo blog/admin.py e substituir seu conteúdo por:

```
Expand All @@ -8,12 +9,11 @@ from .models import Post
admin.site.register(Post)

```
Após alterar, salve o arquivo (“Save file”)!

Como você pode ver, nós importamos (incluímos) o modelo Post definido no capítulo anterior. Para tornar nosso modelo visível na página de administração, nós precisamos registrá-lo com: `admin.site.register(Post)`.

OK, hora de olhar para o nosso modelo de Post. Lembre-se de acessar o ícone na lateral esquerda da tela de novo. Vá no navegador e adicione na URL o /admin. No nosso exemplo vai ficar https://b6sdo2j4.apps.lair.io/admin

Você verá uma página de login assim:

![Página de login](administracao/admin-login.png)
Expand Down
2 changes: 2 additions & 0 deletions codenvy/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Na tela que se abriu, identifique a secção _**SELECT STACK**_ e selecione a op

![selecionando_python](selecionando_python.png)

Para este tutorial, iremos usar a versão mais atualizada do Python.

No final da página ou, no cabeçalho, do lado superior direito, clique na opção _**CREATE**"_ para confirmar a criação do ambiente.
Uma nova janela com o processamento da criação do ambiente irá surgir e, ao final, aparecerá uma tela parecida com essa abaixo.

Expand Down
Binary file modified codenvy/selecionando_python.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 6 additions & 3 deletions django/configurando.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
# Configurando

Vamos fazer algumas alterações no `AfroPython/settings.py`. Abra o arquivo usando o editor de código que usamos anteriormente.
Vamos fazer algumas alterações no `afroPython/settings.py`. Abra o arquivo usando o editor de código que usamos anteriormente.

Seria bom ter a hora correta no nosso site. Vá para a [wikipedia timezones list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) e copie seu fuso horário. (no nosso caso, `America/Sao_Paulo`)

No arquivo `settings.py`, localize a linha que contém `TIME_ZONE` e modifique para escolher seu próprio fuso horário:
No arquivo `settings.py`, localize a linha que contém `TIME_ZONE` (linha 108) e modifique para escolher seu próprio fuso horário:

```
TIME_ZONE = 'America/Sao_Paulo'
```

No mesmo arquivo, precisamos permitir o nosso acesso ao site. Para isso, localize a linha `ALLOWED_HOST` e modifique para:

```
ALLOWED_HOSTS = ['*']
```

Nós também precisaremos adicionar um caminho para arquivos estáticos (nós vamos descobrir tudo sobre arquivos estáticos e CSS mais tarde no tutorial). Desça até o final do arquivo e logo abaixo da entrada `STATIC_URL`, adicione um novo um chamado `STATIC_ROOT`:

```
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
```

Lembre-se de clicar em "Save File" após incluir o conteúdo acima.
Lembre-se que o Codenvy salva as modificações automaticamente.

Por enquanto isso, vamos para a próxima parte?
29 changes: 29 additions & 0 deletions django/criando_uma_aplicacao/criando_uma_aplicacao.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Criando uma aplicação

Para manter tudo arrumado vamos criar um aplicativo separado dentro do nosso projeto. É muito bom ter tudo organizado desde o início.

Para criar um aplicativo precisamos executar o seguinte comando no console:

```
$ python manage.py startapp blog
```

Você vai notar que um novo diretório blog é criado e que ele agora contém um número de arquivos. Nossos diretórios e arquivos no nosso projeto devem se parecer com este:

![Estrutura projeto atualizada](estrutura_projeto_atualizada.png)

Depois de criar um aplicativo também precisamos dizer ao Django que deve usá-lo. Fazemos isso no arquivo afroPython/settings.py.

Precisamos encontrar o INSTALLED_APPS e adicionar uma linha com 'blog', logo acima do ]. É assim que a configuração deve ficar:

```
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
)
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added django/iniciando_um_projeto/estrutura_projeto.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions django/iniciando_um_projeto/iniciando_projeto.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Inciando o projeto

Pronto, agora que temos o django, podemos inciar o nosso projeto. No terminal digite o comando:

```
$ django-admin startproject afropython
```

Isso irá criar uma pasta no Project Explorer que tem a seguinte estrutura:

![Estrutura projeto](estrutura_projeto.png)

Bacana, agora todo o esqueleto de um projeto Django foi criado para nós: um bando de diretórios e arquivos que usaremos mais tarde.

Os nomes de alguns arquivos e diretórios são muito importantes para o Django. Não renomeie os arquivos que estamos prestes a criar. Mover para um lugar diferente também não é uma boa idéia. Django precisa manter uma determinada estrutura para ser capaz de encontrar coisas importantes.

`manage.py` é um script que ajuda com a gestão do site. Com isso seremos capazes de iniciar um servidor de web no nosso computador sem instalar nada, entre outras coisas.

O arquivo `settings.py` contém a configuração do seu site.

Lembra quando falamos sobre um carteiro verificando onde entregar uma carta? arquivo `urls.py` contém uma lista dos padrões usados por `urlresolver`.

Vamos ignorar os outros arquivos por agora - nós não vamos mudá-los. A única coisa a lembrar é não excluí-los por acidente!
21 changes: 16 additions & 5 deletions django/instalando_banco_de_dados.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,32 @@ Precisamos estar no diretório que contém o arquivo `manage.py` dentro da pasta
Se isso der certo, você deve ver algo como isto:

```
...@AfroPython:/mnt/project$ python3 manage.py migrate
(django) user@b3592ed04e17:/projects/afropython$ python3 manage.py migrate
Operations to perform:
Apply all migrations: admin, contenttypes, auth, sessions
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying sessions.0001_initial... OK
```

E está pronto! Hora de iniciar o servidor web e ver se nosso site está funcionando!

Acesse o ícone na lateral esquerda da tela. Uma nova guia/aba vai abrir no seu navegador.

![Abrir o projeto](django/abrir_site.png)
// TO-DO

Parabéns! Você criou seu primeiro site e o executou usando um servidor de web! Não é impressionante?

Expand Down
31 changes: 31 additions & 0 deletions django/instalando_django/instalando.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Instalando Django

> Se você tiver na dentro da pasta ** codigo-python ** (ou, alguma outra), saia dela executando no terminal o comando `cd ..`

Precisamos executar os comandos abaixos na ordem que aparecem para instalar o django. Os dois primeiros comandos são para ativar o virtual env do python, mas você não precisa se preocupar com isso agora.

```
$ python3 -m venv django
```

> Imorpante: Precisamos usar o comando `python3` porque a versão do django que estamos usando é compatível apenas com a versão Python 3 ou maior

Esse comando irá criar uma pasta chamada ** django ** contendo alguns arquivos dentro dela, mas esse é o resultado esperado

```
$ source django/bin/activate
```

O comando acoma ativa o virtaul env no ambiente de deselvimento. Após a execução do comando acima, o teu terminal deverá aparecer o prefixo ** (django) ** a frente da linha de comando:

![Virtal env](virtual_env.png)

> Infelizmente, o Codenvy ficar inativo depois de algumperíodo de tempo ocioso e perde-se a sessão. Se isso acontecer, precisaremos atualizar o site precionando as teclas CRTL+F5 ou no botão de recarregar o navegador. Se você precisar fazer isso, você terá que ativar o virtual env novamente. É importante você exeutar esse comando sempre que tiver fazendo alguma operação no projeto.

Agora, vamos instalar o django. Execute o comando abaixo:

```
pip install Django
```

> Quando você executar esse comando, ou seja, quando você precionar a tecla ENTER, registros do que o pip está fazendo irão aparecer na tela. Se acontecer algum erro, execute de novo. Se o problema persistir, chama alguém pra te ajudar.
Binary file added django/instalando_django/virtual_env.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 7 additions & 4 deletions django/modelos_criando_tabela.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
# Criando tabelas para nossos modelos no banco de dados

O último passo é adicionar nosso novo modelo para nosso banco de dados. Primeiro temos que fazer o Django saber que nós temos algumas mudanças em nosso modelo (só criamos isso), digite:

```
python3 manage.py makemigrations blog
```

Algo parecido com isto deve aparecer para você:

```
…@AfroPython:/mnt/project$ python3 manage.py makemigrations blog
(django) user@b3592ed04e17:/projects/afropython$ python3 manage.py makemigrations blog
Migrations for 'blog':
0001_initial.py:
- Create model Post
blog/migrations/0001_initial.py
- Create model Post
```

Django prepara um arquivo de migração que temos de aplicar agora para nosso banco de dados. Digite:

```
python3 manage.py migrate blog
```

A saída deve ser:

```
…@AfroPython:/mnt/project$ python3 manage.py migrate blog
(django) user@b3592ed04e17:/projects/afropython$ python3 manage.py migrate blog
Operations to perform:
Apply all migrations: blog
Running migrations:
Expand Down
14 changes: 3 additions & 11 deletions django/primeiro_projeto.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
# Seu primeiro projeto Django!

> Parte deste capítulo é baseado nos tutoriais do Geek Girls Carrots (https://github.com/ggcarrots/django-carrots).
Parte deste capítulo é baseado no django-marcador tutorial licenciado sobre Creative Commons Attribution-ShareAlike 4.0 International License. O tutorial do django-marcador é protegido por direitos autorais por Markus Zapke-Gründemann et al.
> Parte deste capítulo é baseado no django-marcador tutorial licenciado sobre Creative Commons Attribution-ShareAlike 4.0 International License. O tutorial do django-marcador é protegido por direitos autorais por Markus Zapke-Gründemann et al.

Nós vamos criar um blog simples!

O primeiro passo para criá-lo é começar um novo projeto de Django. Você já fez isso quando iniciou esse projeto, e todo o esqueleto de um projeto Django foi criado para nós: um bando de diretórios e arquivos que usaremos mais tarde.
O primeiro passo para criá-lo é começar um novo projeto de Django. Mas antes, precisamos do Django.

Os nomes de alguns arquivos e diretórios são muito importantes para o Django. Não renomeie os arquivos que estamos prestes a criar. Mover para um lugar diferente também não é uma boa idéia. Django precisa manter uma determinada estrutura para ser capaz de encontrar coisas importantes.

`manage.py` é um script que ajuda com a gestão do site. Com isso seremos capazes de iniciar um servidor de web no nosso computador sem instalar nada, entre outras coisas.

O arquivo `settings.py` contém a configuração do seu site.

Lembra quando falamos sobre um carteiro verificando onde entregar uma carta? arquivo `urls.py` contém uma lista dos padrões usados por `urlresolver`.

Vamos ignorar os outros arquivos por agora - nós não vamos mudá-los. A única coisa a lembrar é não excluí-los por acidente!
O python possui um instalador de pacotes chamado `pip` (**P**ackage **I**nstaller of **P**ython) e vamos usá-lo para instalar o Django no nosso ambiente de desenvolvimento. Top né?
Binary file removed editor_de_codigo/editor_de_codigo/arquivo.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed editor_de_codigo/editor_de_codigo/novo_arquivo.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 24 additions & 5 deletions editor_de_codigo/introducao.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
# Editor de código

Você está prestes a escrever sua primeira linha de código, então precisamos de um editor de código!
Você está prestes a escrever suas primeiras linhas de código, então precisamos de um editor de código!

Existem muitos editores diferentes e em grande parte se resume a preferência pessoal. A maioria das pessoas que programam em Python usam as complexas, mas extremamente poderosas IDEs (Integrated Development Environments, ou em português, Ambiente de desenvolvimento Integrado), tais como PyCharm.

Para o tutorial, usaremos o editor do Sourcelair. Para isso, basta criar um novo arquivo, clicando no primeiro botão do menu horizontal “Create New File”:
Vamos criar uma pasta chamada ** codigo-python ** que irá conter os arquivos de código que iremos criar.
Para isso, execute o comando abaixo no terminal:

![Criando novo arquivo](editor_de_codigo/novo_arquivo.png)
```
$ mkdir codigo-python
```

Uma nova linha será criada. Coloque o nome do arquivo como 'teste' e aperte Enter:
Podemos ver a pasta que acabamos de criar na secção ** Projects Explorer **

![Criando novo arquivo](editor_de_codigo/arquivo.png)
![Projects Explorer](editor_de_codigo/project_explorer.png)

Usaremos o editor interno do Codenvy. Para isso, basta criar um novo arquivo, selecionando a pasta ** codigo-python ** e clicando no primeiro botão do menu horizontal “Create...”:

![Botão Create](editor_de_codigo/botao_create.png)

Depois, seleciona o tipo de arquivo ** Python File **

![Tipo do arquivo](editor_de_codigo/selecionando_tipo_do_arquivo.png)

Coloque o nome do arquivo como 'python_intro.py' e aperte Enter ou no botão OK:

![Criando novo arquivo](editor_de_codigo/nome_do_arquivo.png)

No final, o arquivo será criado e aberto no editor. A tua tela ficará parecida com essa:

![Editar](editor_de_codigo/editor_aberto.png)
2 changes: 1 addition & 1 deletion editor_de_codigo/necessidade.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Primeiro é que código precisa ser **texto sem formatação**, e o problema com
A segunda razão é que editores de código são especializados em editar código, então eles podem oferecer recursos úteis, como realce de código com cores de acordo com o seu significado, ou automaticamente fechar citações para você.
Nós vamos ver isso em ação depois. Em breve você terá seu editor de código como uma das suas ferramentas favoritas. :)

Agora, vamos voltar para a linha de comando (alterne a aba!).
Agora, vamos voltar para a linha de comando.
9 changes: 5 additions & 4 deletions linha_de_comando/conhecendo.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@

Para começar alguns experimentos, precisamos acessar a linha de comando primeiro.

#### Sourcelair
No Sourcelair, a linha de comando já está aberta para você, na parte inferior da tua tela.
#### Codenvy

No Codenvy, a linha de comando já está aberta para você, na parte inferior da tua tela.
![SSH Terminal](linha_de_comando/terminal.png)

#### Prompt

Esta janela preta está à espera de seus comandos.

![Prompt](linha_de_comando/prompt.png)

Cada comando será antecedido pelo sinal **$** e um espaço, mas você não precisa digitá-lo. Seu computador fará isso por você :)

Cada comando será antecedido pelo sinal **\$** e um espaço, mas você não precisa digitá-lo. Seu computador fará isso por você :)
3 changes: 2 additions & 1 deletion linha_de_comando/entrando_nas_pastas.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ Veja se realmente entramos na pasta:

```
$ pwd
/mnt/project/minhapasta
/projects/minhapasta
```

Aqui está!

**Dica de profissional:** se você digitar **cd m** e apertar a tecla _tab_ no seu teclado, a linha de comando irá preencher automaticamente o resto do nome para que você possa navegar rapidamente.
Expand Down
2 changes: 1 addition & 1 deletion linha_de_comando/limpando.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Veja onde você está:

```
$ pwd
/mnt/project
/projects
```

Agora é hora de excluir o diretório **minhapasta**.
Expand Down
Binary file modified linha_de_comando/linha_de_comando/prompt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified linha_de_comando/linha_de_comando/terminal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion linha_de_comando/pasta_atual.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Seria legal saber em que pasta estamos agora, certo? Vamos ver. Digite o seguint

```
$ pwd
/mnt/project
/projects
```

Provavelmente você vai ver algo parecido na sua máquina. Um vez que você abre a linha de comando você já começa na pasta workspace.
Expand Down
6 changes: 3 additions & 3 deletions linha_de_comando/primeiro_comando.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ Depois tecla Enter. Essa é nossa saída:

```
$ whoami
www-data
user
```

Como você pode ver, o terminal só apresentou o nome de usuário, no caso `www-data`.
Isso acontece pois o nome de usuário do nosso computador ** remoto ** é ** www-data ** .
Como você pode ver, o terminal só apresentou o nome de usuário, no caso `user`.
Isso acontece pois o nome de usuário do nosso computador ** remoto ** é ** user ** .

Caso você esteja fazendo esse teste em algum terminal local, a saída do terminal será seu nome de usuário.
Elegante, né?:)
Expand Down
20 changes: 11 additions & 9 deletions linha_de_comando/resumo.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,20 @@

Aqui vai uma lista de alguns comandos úteis:

| Comando (Windows)|Comando (MacOS/Linux/Sourcelair)| Descrição | Exemplo |
|:----------------:|:-------------------:| -------------- |--------------|
| exit | exit | Fecha a janela | **exit** |
| cd | cd | Muda a pasta | **cd teste** |
| dir | ls | Lista pastas e arquivos | **dir**|
| copy | cp | Copia um arquivo | **copy c:\test\test.txt c:\windows\test.txt**|
| move | mv | Move um arquivo | **move c:\test\test.txt c:\windows\test.txt**|
| mkdir | mkdir | Cria uma pasta | **mkdir teste**|
| del | rm | Deleta uma pasta e/ou arquivo | **del c:\test\test.txt**|
| Comando (MacOS/Linux/Codenvy) | Descrição | Exemplo |
| :---------------------------: | ----------------------------- | ------------------------------------------------------- |
| exit | Fecha a janela | **exit** |
| cd | Muda a pasta | **cd teste** |
| ls | Lista pastas e arquivos | **ls** |
| cp | Copia um arquivo | **cp /projects/minhapasta/test.txt /projects/test.txt** |
| mv | Move um arquivo | **mv projects/minhapasta/test.txt /projects** |
| mkdir | Cria uma pasta | **mkdir teste** |
| rm | Deleta uma pasta e/ou arquivo | **rm /projects/minhapasta/test.txt** |

Estes são apenas alguns dos poucos comandos que você pode executar em sua linha de comando, mas você não vai usar mais nada do que isto hoje.

Alguns comandos podem variar no sistema operacional Windows.

Se você estiver curioso, [ss64.com](ss64.com) contém uma referência completa de comandos para todos os sistemas operacionais.

**Vamos começar? **
Loading