You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Esse tutorial é uma modificação do [tutorial original](https://tutorial.djangogirls.org/pt/) disponível na página do Django Girls.
4
-
O tutorial original pode ser dividido em duas partes: preparação do ambiente e trabalho direto com programação e Python. Mas a primeira parte, a instalação dos programas, era difícil e costumava dar vários tipos de erro, então, nos últimos eventos, temos optado por usar o Codeanywhere (leia mais sobre ele no próximo capítulo!). Por isso o tutorial precisou ser levemente adaptado, tirando partes desnecessárias ou que causavam problema no Codeanywhere.
4
+
O tutorial original pode ser dividido em duas partes: preparação do ambiente e trabalho direto com programação e Python. Mas a primeira parte, a instalação dos programas, era difícil e costumava dar vários tipos de erro, então, nos últimos eventos, temos optado por usar o Sourcelair (leia mais sobre ele no próximo capítulo!). Por isso o tutorial precisou ser levemente adaptado, tirando partes desnecessárias ou que causavam problema no Sourcelair.
5
5
Mas não se preocupe, o objetivo final continua o mesmo! Você vai sair da oficina com seu blog no ar e uma ótima introdução ao mundo da programação!
`blog.views.post_detail` é um caminho para uma *view*`post_detail` que queremos criar. Preste atenção: `blog` é o nome da sua aplicação (o diretório `blog`), `views` vem do nome do arquivo `views.py` e, a última parte - `post_detail` - é o nome da *view*.
41
41
42
-
Agora quando formos para: `http://<<sua_url>>.codeanyapp.com:8080/` teremos um erro (como esperado, já que não temos uma URL ou uma *view* para `post_detail`). Vai se parecer com isso:
42
+
Agora quando formos para sua página inicial, teremos um erro (como esperado, já que não temos uma URL ou uma *view* para `post_detail`). Vai se parecer com isso:
@@ -48,34 +48,34 @@ Agora quando formos para: `http://<<sua_url>>.codeanyapp.com:8080/` teremos um e
48
48
49
49
Vamos criar a URL em `urls.py` para a nossa *view*`post_detail`!
50
50
51
-
Nós queremos que nosso primeiro detalhe de postagem seja exibido através dessa **URL**: http://<<sua_url>>.codeanyapp.com:8080/post/1/
51
+
Nós queremos que nosso primeiro detalhe de postagem seja exibido através dessa **URL**: http://<<sua_url>>/post/1/
52
52
53
-
Vamos criar uma URL no arquivo `blog/urls.py` para direcionar o Django para uma *view* de nome `post_detail`, que irá exibir uma postagem de blog completa. Adicione a linha `url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),` ao arquivo `blog/urls.py`. O arquivo deve ficar dessa forma:
53
+
Vamos criar uma URL no arquivo `blog/urls.py` para direcionar o Django para uma *view* de nome `post_detail`, que irá exibir uma postagem de blog completa. Adicione a linha `path(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),` ao arquivo `blog/urls.py`. O arquivo deve ficar dessa forma:
O trecho ``^post/(?P<pk>\d+)/$`` parece assustador, mas não se preocupe – nós iremos explicar ele para você:
66
68
- ele começa com `^` novamente - "o início".
67
69
-`post/` apenas significa que após o início, a URL deve ter a palavra __post__ e um __/__. Até aqui, tudo bem.
68
-
-`(?P<pk>\d+)` - essa parte é mais complicada. Isso significa que o Django vai pegar tudo que você colocar aqui e transferir para uma view através de uma variável chamada `pk`. `\d` também nos diz que só pode ser um número, não uma letra (tudo entre 0 e 9). `+` significa que precisa existir um ou mais dígitos. Então, algo como `http://<<sua_url>>.codeanyapp.com:8080/post//`, não é válido, mas `http://<<sua_url>>.codeanyapp.com:8080/post/1234567890/` é perfeitamente ok!
70
+
-`(?P<pk>\d+)` - essa parte é mais complicada. Isso significa que o Django vai pegar tudo que você colocar aqui e transferir para uma view através de uma variável chamada `pk`. `\d` também nos diz que só pode ser um número, não uma letra (tudo entre 0 e 9). `+` significa que precisa existir um ou mais dígitos. Então, algo como `http://<<sua_url>>/post//`, não é válido, mas `http://<<sua_url>>/post/1234567890/` é perfeitamente ok!
69
71
-`/` - então precisamos de um __/__ outra vez.
70
72
-`$` - "o fim"!
71
73
72
-
Isso significa que, se você digitar `http://<<sua_url>>.codeanyapp.com:8080/post/5/` em seu navegador, Django vai entender que você está procurando uma *view* chamada `post_detail` e transferir a informação de que `pk` é igual a `5` para aquela *view*.
74
+
Isso significa que, se você digitar `http://<<sua_url>>/post/5/` em seu navegador, Django vai entender que você está procurando uma *view* chamada `post_detail` e transferir a informação de que `pk` é igual a `5` para aquela *view*.
73
75
74
76
`pk` é uma abreviação para `primary key` (chave primária). Esse é o nome geralmente usado nos projetos feitos em Django. Mas você pode dar o nome que quiser às variáveis (lembre-se: minúsculas e `_` ao invés de espaços em branco!). Por exemplo em vez de `(?P<pk>\d+)` podemos ter uma variável `post_id`, então esta parte ficaria como: `(?P<post_id>\d+)`.
75
77
76
-
OK, nós adicionamos um novo padrão de URL ao `blog/urls.py`! Vamos atualizar a página: `http://<<sua_url>>.codeanyapp.com:8000/` Boom! O servidor parou de funcionar novamente. Dê uma olhada no console – como esperado, temos outro erro!
77
-
78
-

78
+
OK, nós adicionamos um novo padrão de URL ao `blog/urls.py`! Vamos atualizar a página: `http://<<sua_url>>` Boom! O servidor parou de funcionar novamente. Dê uma olhada no console – como esperado, temos outro erro!
79
79
80
80
Você se lembra qual é o próximo passo? Claro: adicionar uma view!
Isso não adiciona nenhum arquivo ao seu projeto. O código apenas aponta para arquivos que existem na internet. Apenas siga em frente, abra seu site e atualize a página. Veja como está!
Copy file name to clipboardExpand all lines: css/estaticos_do_django.md
+1-2
Original file line number
Diff line number
Diff line change
@@ -8,12 +8,11 @@ Django já sabe onde encontrar os arquivos estáticos para o app padrão "admin"
8
8
9
9
Fazemos isso através da criação de uma pasta chamada `static` dentro do aplicativo do blog:
10
10
11
-
afropython
12
11
├── blog
13
12
│ ├── migrations
14
13
│ ├── static
15
14
│ └── templates
16
-
└── mysite
15
+
└── afropython
17
16
18
17
19
18
Django encontrará automaticamente todas as pastas chamadas "static" dentro de qualquer uma das pastas dos seus apps, e será capaz de usar seu conteúdo como arquivos estáticos.
Copy file name to clipboardExpand all lines: css/primeiro_arquivo_css.md
+6-5
Original file line number
Diff line number
Diff line change
@@ -2,11 +2,10 @@
2
2
3
3
Vamos criar um arquivo CSS agora, para adicionar seu próprio estilo para sua página da web. Crie um novo diretório chamado `css` dentro de seu diretório `static`. Em seguida, crie um novo arquivo chamado `blog.css` dentro do diretório `css`. Pronto?
4
4
5
-
afropython
6
-
└─── blog
7
-
└─── static
8
-
└─── css
9
-
└─── blog.css
5
+
blog
6
+
└─── static
7
+
└─── css
8
+
└─── blog.css
10
9
11
10
12
11
Hora de escrever CSS! Abra o arquivo `static/css/blog.css` no seu editor de código.
É isso! Veja se o seu site ainda está funcionando direito :)
141
141
142
-
> Se ocorrer um erro de `TemplateDoesNotExists`, que diz que não existe nenhum arquivo chamado `blog/base.html` e se você tiver o `runserver` executando no terminal, tenta interrompê-lo (precionando Ctrl+C - o botão Control mais o botão C juntos) e reinicie ele rodando o comando `python3 manage.py runserver 0.0.0.0`.
142
+
> Se ocorrer um erro de `TemplateDoesNotExists`, que diz que não existe nenhum arquivo chamado `blog/base.html`, tente reiniciar o servidor. Abra a Command Pallete pelo ícone no menu lateral, procure por `Restart Server` e aperte Enter.
Vamos ver se funciona. Vá para o página `http://<<sua_url>>.codeanyapp.com:8080/post/new/`, adicione um `title` e o `text`, salve... e voilà! O novo blog post é adicionado e nós somos redirecionados para a página de `post_detail`!
80
+
Vamos ver se funciona. Vá para o página `http://<<sua_url>>/post/new/`, adicione um `title` e o `text`, salve... e voilà! O novo blog post é adicionado e nós somos redirecionados para a página de `post_detail`!
81
81
82
82
Isso é incrível!
83
83
84
-
> Como nós recentemente usamos a interface de administração do Django, o sistema ainda pensa que nós estamos "logados". Existem algumas situações que poderiam nos levar a estar "deslogados" (fechando o browser, reiniciando o banco de dados, etc.). Se, durante a criação de uma postagem, você perceber que está recebendo erros referentes a falta de um usuário "logado", vá para a página de administração http://<<sua_url>>.codeanyapp.com:8080/admin e faça o login novamente. Isso resolverá o problema temporariamente.
85
-
86
-

84
+
> Como nós recentemente usamos a interface de administração do Django, o sistema ainda pensa que nós estamos "logados". Existem algumas situações que poderiam nos levar a estar "deslogados" (fechando o browser, reiniciando o banco de dados, etc.). Se, durante a criação de uma postagem, você perceber que está recebendo erros referentes a falta de um usuário "logado", vá para a página de administração http://<<sua_url>>/admin e faça o login novamente. Isso resolverá o problema temporariamente.
Copy file name to clipboardExpand all lines: formularios/template.md
+2-4
Original file line number
Diff line number
Diff line change
@@ -5,9 +5,7 @@ Precisamos criar um arquivo `post_edit.html` na pasta `blog/templates/blog`. Pra
5
5
- Temos que exibir o formulário. Podemos fazer isso com (por exemplo) um simplesmente {% raw %}`{{ form.as_p }}`{% endraw %}.
6
6
- A linha acima precisa estar entre as tags HTML form: `<form method="POST">...</form>`
7
7
- Precisamos de um botão `Salvar`. Fazemos isso com um botão HTML: `<button type="submit">Save</button>`
8
-
- E finalmente, depois de abrir a tag `<form ...>` precisamos adicionar um {% raw %}`{% csrf_token %}`{% endraw %}. Isso é muito importante, pois faz com que nosso formulário seja seguro! O Django vai reclamar se você esquecer de adicionar isso e tentar salvar o formulário:
9
-
10
-

8
+
- E finalmente, depois de abrir a tag `<form ...>` precisamos adicionar um {% raw %}`{% csrf_token %}`{% endraw %}. Isso é muito importante, pois faz com que nosso formulário seja seguro! O Django vai reclamar se você esquecer de adicionar isso e tentar salvar o formulário.
11
9
12
10
Beleza, então vamos ver como ficou o HTML `post_edit.html`:
Cada sistema operacional tem o seu próprio conjunto de instruções para a linha de comando, mas no codeanywhere usamos um sistema Linux.
3
+
Cada sistema operacional tem o seu próprio conjunto de instruções para a linha de comando, mas no sourcelair usamos um sistema Linux.
4
4
5
5
Para informações de outros sistemas, acesse [Introdução à linha de comando](https://tutorial.djangogirls.org/pt/intro_to_command_line/) do [Tutorial Django Girls](https://tutorial.djangogirls.org/pt/).
0 commit comments