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
Tempo para explicar o misterioso `{% url 'blog.views.post_detail' pk=post.pk %}`. Como você pode suspeitar, a notação de `{% %}` significa que estamos usando as tags de template do Django. Desta vez vamos usar uma que vai criar uma URL para nós!
37
+
{%raw}Tempo para explicar o misterioso `{% url 'blog.views.post_detail' pk=post.pk %}`. Como você pode suspeitar, a notação de `{% %}` significa que estamos usando as tags de template do Django. Desta vez vamos usar uma que vai criar uma URL para nós!{% endraw %}
36
38
37
39
`blog.views.post_detail` é um caminho para um `post_detail`*Vista* 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*.
38
40
@@ -47,15 +49,16 @@ Vamos criar a URL em `urls.py` para a nossa`post_detail` *view*!
47
49
### URL: http://127.0.0.1:8000/post/1/
48
50
49
51
Queremos criar uma URL para guiar o Django para a *view* chamada `post_detail`, que irá mostrar um post completo do blog. Adicione a linha `url(r'^post/(?P<pk>[0-9]+)/$', views.post_detail),` ao arquivo `blog/urls.py`. Deve ficar assim:
Parece assustador, mas não se preocupe - vamos explicar ele para você: - começa com `^` de novo... "o início" - `post /` significa apenas que após o começo, da URL deve ter a palavra **post** e **/**. Até aqui, tudo bem. - `(?P<pk>[0-9]+)` - essa parte é mais complicada. Isso significa que o Django vai levar tudo que você colocar aqui e transferir para uma view como uma variável chamada `pk`. `[0-9]` 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://127.0.0.1:8000/post//` não é válido, mas `http://127.0.0.1:8000/post/1234567890/` é perfeitamente ok! -`/` - então precisamos de **/** outra vez - `$` - "o fim"!
61
64
@@ -125,7 +128,7 @@ Ah não! Outro erro! Mas nós já sabemos como lidar com isso, né? Precisamos a
125
128
Vamos criar um arquivo em `blog/templates/blog` chamado `post_detail.html`.
126
129
127
130
Será algo parecido com isto:
128
-
131
+
```html
129
132
{% extends 'blog/base.html' %}
130
133
131
134
{% block content %}
@@ -139,11 +142,11 @@ Será algo parecido com isto:
139
142
<p>{{ post.text|linebreaks }}</p>
140
143
</div>
141
144
{% endblock %}
142
-
145
+
```
143
146
144
147
Mais uma vez estamos estendendo `base.html`. No bloco de `content` queremos exibir o published_date (data de publicação) do post (se houver), título e texto. Mas devemos discutir algumas coisas importantes, certo?
145
148
146
-
`{% if ... %} ... {% endif %}` é uma tag de template que podemos usar quando queremos verificar algo (Lembre-se `if ... else...` do **capítulo introdução ao Python**?). Neste cenário, queremos verificar se `published_date` de um post não está vazia.
149
+
{% raw %}`{% if ... %} ... {% endif %}` é uma tag de template que podemos usar quando queremos verificar algo (Lembre-se `if ... else...` do **capítulo introdução ao Python**?). Neste cenário, queremos verificar se `published_date` de um post não está vazia.{% endraw %}
147
150
148
151
Ok, podemos atualizar nossa página e ver se `Page not found` já se foi.
149
152
@@ -156,13 +159,13 @@ Yay! Funciona!
156
159
## Mais uma coisa: hora de implantar!
157
160
158
161
Seria bom ver se seu site ainda estará trabalhando em PythonAnywhere, certo? Vamos tentar fazer deploy novamente.
159
-
162
+
```bash
160
163
$ git status
161
164
$ git add -A .
162
165
$ git status
163
166
$ git commit -m "Added views to create/edit blog post inside the site."
164
167
$ git push
165
-
168
+
```
166
169
167
170
* Então, em um [console PythonAnywhere Bash][8]:
168
171
@@ -173,4 +176,4 @@ Seria bom ver se seu site ainda estará trabalhando em PythonAnywhere, certo? Va
0 commit comments