Skip to content

Commit

Permalink
Merge pull request DjangoGirls#1235 from naiieandrade/master
Browse files Browse the repository at this point in the history
[pt] Fix some words
  • Loading branch information
magul authored Jul 17, 2018
2 parents 7578aff + 43d0267 commit 38aa6cb
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 14 deletions.
8 changes: 4 additions & 4 deletions pt/css/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,9 @@ Talvez a gente possa customizar a fonte no nosso cabeçalho? Cole na seção `<h
<link href="//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext" rel="stylesheet" type="text/css">
```

Como antes, cconfira a ordem e coloque antes do link para `blog/static/css/blog.css`. Essa linha irá importar uma fonte chamada *Lobster* do Google Fonts (https://www.google.com/fonts).
Como antes, confira a ordem e coloque antes do link para `blog/static/css/blog.css`. Essa linha irá importar uma fonte chamada *Lobster* do Google Fonts (https://www.google.com/fonts).

Encontre o bloco com a declaração `h1 a` (o código entre chaves `{` and `}`) dentro do arquivo CSS `blog/static/css/blog.css`. Agora adicione a linha `font-family: 'Lobster';` entre as chaves, e atualize a página:
Encontre o bloco com a declaração `h1 a` (o código entre chaves `{` e `}`) dentro do arquivo CSS `blog/static/css/blog.css`. Agora adicione a linha `font-family: 'Lobster';` entre as chaves, e atualize a página:


Agora adicione a linha `font-family: 'Lobster';` no CSS do arquivo `static/css/blog.css` dentro do bloco de declaração `h1 a` (o código entre as chaves `{` e `}`) e atualize a página:
Expand All @@ -173,7 +173,7 @@ h1 a {

Incrível!

Como mencionado acima, CSS usa o conceito de classes, que basicamente permite que você nomeie parte do código HTML e aplique estilos apenas à esta parte, sem afetar as outras. É super útil se você tiver duas divs, mas eles estão fazendo algo muito diferente (como o seu cabeçalho e seu post). Uma classe pode ajudar você a fazer com que eles tenham um visual diferente.
Como mencionado acima, CSS usa o conceito de classes, que basicamente permite que você nomeie parte do código HTML e aplique estilos apenas à esta parte, sem afetar as outras. É super útil! Talvez você tenha duas `div`s que estão fazendo algo muito diferente (como o seu cabeçalho e seu post). A classe pode ajudar você a fazer com que eles tenham um visual diferente.

Vá em frente e o nomeie algumas partes do código HTML. Adicione uma classe chamada de `page-header` para o `div` que contém o cabeçalho, assim:

Expand Down Expand Up @@ -286,7 +286,7 @@ Salve esses arquivos e atualize seu site.

![Figure 14.4](images/final.png)

Uhuu! Ficou incrível, né? Olhe para o código que nós acabamos de colar para encontrar os lugares aonde nós adicionamos classes no HTML e as usamos no CSS. Aonde você faria a mudança para que a data ficasse com a cor turquesa ?
Uhuu! Ficou incrível, né? Olhe para o código que nós acabamos de colar para encontrar os lugares aonde nós adicionamos classes no HTML e as usamos no CSS. Aonde você faria a mudança para que a data ficasse com a cor turquesa?

Não tenha medo de brincar com esse CSS um pouco e tente mudar algumas coisas. Brincar com o CSS pode ajudar você a entender as
diferentes coisas que estão sendo feitas. Se você bagunçar tudo, não se preocupe - você sempre pode voltar atrás!
Expand Down
10 changes: 5 additions & 5 deletions pt/django_forms/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,9 +176,9 @@ def post_new(request):
return render(request, 'blog/post_edit.html', {'form': form})
```

Quando nós enviamos o formulário, somos trazidos de volta para a mesma visão, mas desta vez temos mais alguns dados no `request`, mais especificamente em `request.POST` (o nome não tem nada com uma "postagem" de blog , tem a ver com o fato de que estamos "postando" dados). Você se lembra que no arquivo HTML nossa definição de ` <form> ` tem a variável `method="POST"`? Todos os campos vindos do "form" estarão disponíveis agora em `request.POST`. Você não deveria renomear `POST` para nada diferente disso (o único outro valor válido para `method` é `GET`, mas nós não temos tempo para explicar qual é a diferença).
Quando nós enviamos o formulário, somos trazidos de volta para a mesma visão, mas desta vez temos mais alguns dados no `request`, mais especificamente em `request.POST` (o nome não tem nada com uma "postagem" de blog, tem a ver com o fato de que estamos "postando" dados). Você se lembra que no arquivo HTML nossa definição de ` <form> ` tem a variável `method="POST"`? Todos os campos vindos do "form" estarão disponíveis agora em `request.POST`. Você não deveria renomear `POST` para nada diferente disso (o único outro valor válido para `method` é `GET`, mas nós não temos tempo para explicar qual é a diferença).

Então, na nossa *view*, nós temos duas situações separadas para lidar. A primeira é quanto acessamos a página pela primeira vez e queremos um formulário em branco. E a segunda, é quando nós temos que voltar para a *view* com todos os dados do formulário que nós digitamos. Desse modo, precisamos adicionar uma condição (usaremos `if` para isso).
Então, na nossa *view*, nós temos duas situações separadas para lidar. A primeira é quando acessamos a página pela primeira vez e queremos um formulário em branco. E a segunda, é quando nós temos que voltar para a *view* com todos os dados do formulário que nós digitamos. Desse modo, precisamos adicionar uma condição (usaremos `if` para isso).

{% filename %}blog/views.py{% endfilename %}
```python
Expand All @@ -188,14 +188,14 @@ else:
form = PostForm()
```

Está na hora de preencher os pontos`[...]`. Se `method` é `POST` então nós queremos construir o `PostForm` com os dados que veem do formulário, certo? Nós iremos fazer assim:
Está na hora de preencher os pontos`[...]`. Se `method` é `POST` então nós queremos construir o `PostForm` com os dados que vêm do formulário, certo? Nós iremos fazer assim:

{% filename %}blog/views.py{% endfilename %}
```python
form = PostForm(request.POST)
```

Fácil! A próxima coisa é verificar se o formulário está correto(todos os campos requeridos estão definidos e nenhum valor incorreto foi enviado). Fazemos isso com `form.is_valid()`.
Fácil! A próxima coisa é verificar se o formulário está correto (todos os campos requeridos estão definidos e nenhum valor incorreto foi enviado). Fazemos isso com `form.is_valid()`.

Verificamos se o formulário é válido e se estiver tudo certo, podemos salvá-lo!

Expand All @@ -208,7 +208,7 @@ if form.is_valid():
post.save()
```

Basicamente, temos duas coisas aqui: salvamos o formulário com `form.save` e adicionados um autor(já que não tinha o campo `author` em `PostForm`, e este campo é obrigatório!). `commit=False` significa que não queremos salvar o modelo `Post` ainda - queremos adicionar autor primeiro. Na maioria das vezes você irá usar `form.save()`, sem `commit=False`, mas neste caso, precisamos fazer isso. `post.save()` irá preservar as alterações (adicionando o autor) e será criada uma nova postagem no blog!
Basicamente, temos duas coisas aqui: salvamos o formulário com `form.save` e adicionados um autor (já que não tinha o campo `author` em `PostForm`, e este campo é obrigatório!). `commit=False` significa que não queremos salvar o modelo `Post` ainda - queremos adicionar autor primeiro. Na maioria das vezes você irá usar `form.save()`, sem `commit=False`, mas neste caso, precisamos fazer isso. `post.save()` irá preservar as alterações (adicionando o autor) e será criada uma nova postagem no blog!

Finalmente, seria fantástico se nós pudéssemos imediatamente ir à página `post_detail` da nossa recém-criada postagem no blog, certo? Para fazer isso nós precisamos fazer mais um import:

Expand Down
2 changes: 1 addition & 1 deletion pt/domain/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Pode levar alguns minutos para o seu domínio funcionar, então seja paciente!

## Configure o domínio através de um web app na PythonAnywhere.

Você também precisa dizer PythonAnywhere que você deseja usar o seu domínio personalizado.
Você também precisa dizer para o PythonAnywhere que você deseja usar o seu domínio personalizado.

Vá para a [página PythonAnywhere contas][7] e atualize sua conta. A opção mais barata (um plano de "Hacker") é bom para começar, você pode sempre atualizá-lo mais tarde quando você ficar super famosa e tiver milhões de acessos.

Expand Down
20 changes: 18 additions & 2 deletions pt/extend_your_application/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ Será algo parecido com isto:
{% endblock %}
```
Mais uma vez estamos estendendo `base.html`. No bloco `content` queremos exibir o published_date (data de publicação) da postagem (se houver), título e texto. Mas devemos discutir algumas coisas importantes, certo?
Mais uma vez estamos estendendo `base.html`. No bloco `content` queremos exibir o `published_date` (data de publicação) da postagem (se houver), título e texto. Mas devemos discutir algumas coisas importantes, certo?
{% raw %}`{% if ... %} ... {% endif %}` é uma tag de template que podemos usar quando queremos verificar algo (Lembra do `if ... else...` do **capítulo introdução ao Python**?). Neste cenário, queremos verificar se `published_date` de uma postagem não está vazia.{% endraw %}
Expand All @@ -160,7 +160,7 @@ Ok, podemos atualizar nossa página e ver se o `TemplateDoesNotExist`já se foi
Yay! Funciona!
## Mais uma coisa: hora de implantar!
# Mais uma coisa: hora de implantar!
Seria bom ver se seu site ainda estará trabalhando em PythonAnywhere, certo? Vamos tentar fazer deploy novamente.
Expand All @@ -182,6 +182,22 @@ $ git pull
[...]
```
## Atualizando os arquivos estáticos no servidor
Servidores como PythonAnywhere gostam de tratar "arquivos estáticos" (como arquivos CSS) de maneira diferente dos arquivos Python, porque eles podem otimizá-los para que sejam carregados mais rapidamente. Como resultado, sempre que fazemos mudanças nos nossos arquivos de CSS, precisamos executar um comando extra no servidor para informá-los para atualizá-los. O comando é chamado `collectstatic`.
Comece inicializando seu ambiente virtual, se não tiver inicializado anteriormente (PythonAnywhere usa um comando chamado `workon` para fazer isso, é como o comando `source myenv/bin/activate` que você usa no seu próprio computador):
{% filename %}command-line{% endfilename %}
```
$ workon <your-pythonanywhere-username>.pythonanywhere.com
(ola.pythonanywhere.com)$ python manage.py collectstatic
[...]
```
O comando `manage.py collecstatic` é um pouco parecido com `manage.py migrate`. Fazemos alterações em nosso código e, em seguida, informamos o Django para _aplicar_ essas alterações, seja para a coleção do servidor de arquivos estáticos, seja para o banco de dados.
E finalmente, pule para a [tab Web](https://www.pythonanywhere.com/web_app_setup/) e aperte **Reload**.
E deve ser isso! Parabéns :)
4 changes: 2 additions & 2 deletions pt/template_extending/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Hora de adicionar tags de bloco ("block") nesse arquivo!
{% endblock %}
```

Só falta uma coisa. Nós precisamos fazer a conexão entre esses dois templates. É isso que "extendendo templates" significa! Nós iremos fazer isso adicionando uma tag de extender ("extends") ao início do arquivo. Dessa forma:
Só falta uma coisa. Nós precisamos fazer a conexão entre esses dois templates. É isso que "extendendo templates" significa! Nós iremos fazer isso adicionando uma tag de estender ("extends") ao início do arquivo. Dessa forma:

{% filename %}blog/templates/blog/post_list.html{% endfilename %}
```html
Expand All @@ -139,4 +139,4 @@ Só falta uma coisa. Nós precisamos fazer a conexão entre esses dois templates

É isso! Veja se o seu site ainda está funcionando direito :)

> 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 `python manage.py runserver`.
> 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, tente interrompê-lo (precionando Ctrl+C - o botão Control mais o botão C juntos) e reinicie ele rodando o comando `python manage.py runserver`.

0 comments on commit 38aa6cb

Please sign in to comment.