diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2fa909e --- /dev/null +++ b/LICENSE @@ -0,0 +1,2 @@ +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ diff --git a/README.md b/README.md index 4143e0f..c09f310 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # AfroPython Tutorial Esse tutorial é uma modificação do [tutorial original](https://tutorial.djangogirls.org/pt/) disponível na página do Django Girls. -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. -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! \ No newline at end of file + +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 Codenvy (leia mais sobre ele no próximo capítulo!). O tutorial precisou ser levemente adaptado, tirando partes desnecessárias ou que causavam problemas 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! \ No newline at end of file diff --git a/SUMMARY.md b/SUMMARY.md index dbafc48..ec196f4 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,91 +1,92 @@ # Summary -* [Sobre](README.md) -* [Introdução](introducao.md) -* [Sourcelair](sourcelair/sourcelair.md) - * [O que é o Sourcelair](sourcelair/o_que_e.md) - * [Crie uma conta](sourcelair/criando_conta.md) - * [Criando um projeto](sourcelair/criando_projeto.md) -* [Como funciona a internet?](internet/como_funciona.md) -* [Introdução a linha de comando](linha_de_comando/introducao.md) - * [O que é a linha de comando?](linha_de_comando/o_que_e.md) - * [Conhecendo a linha de comando](linha_de_comando/conhecendo.md) - * [Seu primeiro comando (YAY!)](linha_de_comando/primeiro_comando.md) - * [O básico](linha_de_comando/basico.md) - * [Pasta atual](linha_de_comando/pasta_atual.md) - * [Criando uma pasta](linha_de_comando/criando_uma_pasta.md) - * [Listando arquivos e pastas](linha_de_comando/listando_arquivos_e_pastas.md) - * [Entrando nas pastas](linha_de_comando/entrando_nas_pastas.md) - * [Exercite-se!](linha_de_comando/exercitando.md) - * [Limpando](linha_de_comando/limpando.md) - * [Resumo](linha_de_comando/resumo.md) -* [Editor de Código](editor_de_codigo/introducao.md) - * [Porque precisamos de um editor de código?](editor_de_codigo/necessidade.md) -* [Introdução ao Python](python/introducao.md) - * [Strings](python/strings.md) - * [Erros](python/erros.md) - * [Variáveis](python/variaveis.md) - * [A função print](python/funcao_print.md) - * [Listas](python/listas.md) - * [Dicionários](python/dicionarios.md) - * [Resumo até agora](python/resumo_ate_agora.md) - * [Fazendo comparações](python/comparando.md) - * [Booleanos](python/booleanos.md) - * [Salve o código!](salve_o_codigo/intro.md) - * [if...elif...else](salve_o_codigo/estruturas_condicionais.md) - * [E se não?](salve_o_codigo/e_se_nao.md) - * [Resumo](salve_o_codigo/resumo.md) - * [Suas próprias funções](salve_o_codigo/suas_proprias_funcoes.md) - * [Laços de repetição](salve_o_codigo/lacos.md) - * [Resumo](salve_o_codigo/resumo-sessao.md) -* [Django, o que é?](django/o_que_e.md) - * [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) - * [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 um modelo](django/modelos_criando_modelo.md) - * [Criando tabelas](django/modelos_criando_tabela.md) -* [Administração](administracao.md) -* [URLs](urls/urls.md) - * [O que é uma URL?](urls/o_que_e_uma_url.md) - * [Como funcionam as URLs no Django?](urls/como_funcionam_as_urls_em_django.md) - * [Sua primeira URL Django](urls/sua_primeira_url_django.md) - * [blog.urls](urls/blog_urls.md) -* [Views](views/views.md) - * [blog/views.py](views/blog_views_py.md) -* [Introdução a HTML](introducao_html/introducao.md) - * [Seu primeiro template!](introducao_html/template.md) - * [Head & Body](introducao_html/head_body.md) - * [Customize seu template](introducao_html/customizacao.md) -* [QuerySet e ORM do Django](query-set-orm/queryset_e_orm_do_django.md) - * [O que é um QuerySet?](query-set-orm/o_que_e_um_queryset.md) - * [O shell do Django](query-set-orm/shell_do_django.md) - * [Todos os objetos](query-set-orm/todos_os_objetos.md) - * [Criando um objeto](query-set-orm/criando_um_objeto.md) - * [Adicionando objetos](query-set-orm/adicionando_objetos.md) - * [Filtrar objetos](query-set-orm/filtrar_objetos.md) - * [Ordenando objetos](query-set-orm/ordenando_objetos.md) -* [Dados dinâmicos no template](dados-dinamicos-no-template/dados-dinamicos-no-template.md) - * [QuerySet](dados-dinamicos-no-template/queryset.md) -* [Templates](templates/templates.md) - * [O que são tags de template](templates/o_que_sao_tags_de_template.md) - * [Modelo de lista de post de exibição](templates/modelo_de_lista_de_post_de_exibicao.md) -* [CSS - Deixe mais bonito!](css/css.md) - * [Vamos usar o Bootstrap!](css/bootstrap.md) - * [Arquivos estáticos no Django](css/estaticos_do_django.md) - * [Seu primeiro arquivo CSS!](css/primeiro_arquivo_css.md) -* [Estendendo templates](estendendo_templates/estendendo_templates.md) -* [Amplie sua aplicação](amplie_sua_aplicacao/amplie_sua_aplicacao.md) -* [Formulários](formularios/introducao.md) - * [URLs e Views](formularios/url_e_views.md) - * [Template](formularios/template.md) - * [Salvando o formulário](formularios/salvando_formularios.md) - * [Validação de formulários](formularios/validacao_formularios.md) - * [Editando o formulário](formularios/editando_formularios.md) - * [Segurança](formularios/seguranca.md) -* [O que vem depois!](o_que_vem_depois/o_que_vem_depois.md) +- [Sobre](README.md) +- [Introdução](introducao.md) +- [Codenvy](codenvy/codenvy.md) + - [O que é o Codenvy](codenvy/o_que_e.md) + - [Crie uma conta](codenvy/criando_conta.md) + - [Complete o cadastro](codenvy/complete_o_cadastro.md) + - [Dashboard](codenvy/dashboard.md) +- [Como funciona a internet?](internet/como_funciona.md) +- [Introdução a linha de comando](linha_de_comando/introducao.md) + - [O que é a linha de comando?](linha_de_comando/o_que_e.md) + - [Conhecendo a linha de comando](linha_de_comando/conhecendo.md) + - [Seu primeiro comando (YAY!)](linha_de_comando/primeiro_comando.md) + - [O básico](linha_de_comando/basico.md) + - [Pasta atual](linha_de_comando/pasta_atual.md) + - [Criando uma pasta](linha_de_comando/criando_uma_pasta.md) + - [Listando arquivos e pastas](linha_de_comando/listando_arquivos_e_pastas.md) + - [Entrando nas pastas](linha_de_comando/entrando_nas_pastas.md) + - [Exercite-se!](linha_de_comando/exercitando.md) + - [Limpando](linha_de_comando/limpando.md) + - [Resumo](linha_de_comando/resumo.md) +- [Editor de Código](editor_de_codigo/introducao.md) + - [Porque precisamos de um editor de código?](editor_de_codigo/necessidade.md) +- [Introdução ao Python](python/introducao.md) + - [Strings](python/strings.md) + - [Erros](python/erros.md) + - [Variáveis](python/variaveis.md) + - [A função print](python/funcao_print.md) + - [Listas](python/listas.md) + - [Dicionários](python/dicionarios.md) + - [Resumo até agora](python/resumo_ate_agora.md) + - [Fazendo comparações](python/comparando.md) + - [Booleanos](python/booleanos.md) + - [Salve o código!](salve_o_codigo/intro.md) + - [if...elif...else](salve_o_codigo/estruturas_condicionais.md) + - [E se não?](salve_o_codigo/e_se_nao.md) + - [Resumo](salve_o_codigo/resumo.md) + - [Suas próprias funções](salve_o_codigo/suas_proprias_funcoes.md) + - [Laços de repetição](salve_o_codigo/lacos.md) + - [Resumo](salve_o_codigo/resumo-sessao.md) +- [Django, o que é?](django/o_que_e.md) + - [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) + - [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 um modelo](django/modelos_criando_modelo.md) + - [Criando tabelas](django/modelos_criando_tabela.md) +- [Administração](administracao.md) +- [URLs](urls/urls.md) + - [O que é uma URL?](urls/o_que_e_uma_url.md) + - [Como funcionam as URLs no Django?](urls/como_funcionam_as_urls_em_django.md) + - [Sua primeira URL Django](urls/sua_primeira_url_django.md) + - [blog.urls](urls/blog_urls.md) +- [Views](views/views.md) + - [blog/views.py](views/blog_views_py.md) +- [Introdução a HTML](introducao_html/introducao.md) + - [Seu primeiro template!](introducao_html/template.md) + - [Head & Body](introducao_html/head_body.md) + - [Customize seu template](introducao_html/customizacao.md) +- [QuerySet e ORM do Django](query-set-orm/queryset_e_orm_do_django.md) + - [O que é um QuerySet?](query-set-orm/o_que_e_um_queryset.md) + - [O shell do Django](query-set-orm/shell_do_django.md) + - [Todos os objetos](query-set-orm/todos_os_objetos.md) + - [Criando um objeto](query-set-orm/criando_um_objeto.md) + - [Adicionando objetos](query-set-orm/adicionando_objetos.md) + - [Filtrar objetos](query-set-orm/filtrar_objetos.md) + - [Ordenando objetos](query-set-orm/ordenando_objetos.md) +- [Dados dinâmicos no template](dados-dinamicos-no-template/dados-dinamicos-no-template.md) + - [QuerySet](dados-dinamicos-no-template/queryset.md) +- [Templates](templates/templates.md) + - [O que são tags de template](templates/o_que_sao_tags_de_template.md) + - [Modelo de lista de post de exibição](templates/modelo_de_lista_de_post_de_exibicao.md) +- [CSS - Deixe mais bonito!](css/css.md) + - [Vamos usar o Bootstrap!](css/bootstrap.md) + - [Arquivos estáticos no Django](css/estaticos_do_django.md) + - [Seu primeiro arquivo CSS!](css/primeiro_arquivo_css.md) +- [Estendendo templates](estendendo_templates/estendendo_templates.md) +- [Amplie sua aplicação](amplie_sua_aplicacao/amplie_sua_aplicacao.md) +- [Formulários](formularios/introducao.md) +- [URLs e Views](formularios/url_e_views.md) +- [Template](formularios/template.md) +- [Salvando o formulário](formularios/salvando_formularios.md) +- [Validação de formulários](formularios/validacao_formularios.md) +- [Editando o formulário](formularios/editando_formularios.md) +- [Segurança](formularios/seguranca.md) +- [O que vem depois!](o_que_vem_depois/o_que_vem_depois.md) diff --git a/codenvy/codenvy.md b/codenvy/codenvy.md new file mode 100644 index 0000000..95ac0fe --- /dev/null +++ b/codenvy/codenvy.md @@ -0,0 +1,7 @@ +# Codenvy + +## Preparação do ambiente + +Para desenvolver o nosso projeto sem ter de instalar nada direto na máquina que estamos utilizando, vamos utilizar uma ferramenta chamada Codenvy. + +Você pode acessá-la aqui: [https://codenvy.com](https://codenvy.com) diff --git a/codenvy/comple_o_cadastro.png b/codenvy/comple_o_cadastro.png new file mode 100644 index 0000000..d8ffd05 Binary files /dev/null and b/codenvy/comple_o_cadastro.png differ diff --git a/codenvy/complete_o_cadastro.md b/codenvy/complete_o_cadastro.md new file mode 100644 index 0000000..3cafc22 --- /dev/null +++ b/codenvy/complete_o_cadastro.md @@ -0,0 +1,5 @@ +# Complete o cadastro + +Após a confirmação do e-mail. Preencha o formulário para completar o cadastro + +![comple_o_cadastro](comple_o_cadastro.png) diff --git a/codenvy/criando_conta.md b/codenvy/criando_conta.md new file mode 100644 index 0000000..a4d1ad7 --- /dev/null +++ b/codenvy/criando_conta.md @@ -0,0 +1,7 @@ +# Crie uma conta + +O primeiro passo para utilizarmos o Codenvy é criar uma conta. Acesse o site, depois clique na opção de menu _"GET STARTED"_ e selecione a opção _"CREATE ACCOUNT"_ para se registrar. Você pode usar seu e-mail ou uma conta do GitHub. + +# Valide seu e-mail + +É necessário que você valide seu e-mail, então certifique-se de ter acesso a ele. diff --git a/codenvy/criando_um_workspace.png b/codenvy/criando_um_workspace.png new file mode 100644 index 0000000..bbc9d72 Binary files /dev/null and b/codenvy/criando_um_workspace.png differ diff --git a/codenvy/dashboard.md b/codenvy/dashboard.md new file mode 100644 index 0000000..f5b6c5e --- /dev/null +++ b/codenvy/dashboard.md @@ -0,0 +1,16 @@ +# Entramos + +## Agora, precisamos criar uma área de trabalho para o nosso projeto + +Na tela do dashboard, clique na opção _**Create Workspace**_ para criar uma nova área de trabalho. + +![criando_um_workspace](criando_um_workspace.png) + +Na tela que se abriu, identifique a secção _**SELECT STACK**_ e selecione a opção _"Python"_ + +![selecionando_python](selecionando_python.png) + +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. + +![workspace](workspace.png) diff --git a/codenvy/o_que_e.md b/codenvy/o_que_e.md new file mode 100644 index 0000000..aff5940 --- /dev/null +++ b/codenvy/o_que_e.md @@ -0,0 +1,3 @@ +# O que é o Codenvy? + +O Codenvy nos oferece um computador como outro qualquer, para podermos desenvolver nosso código. O diferencial dele é, quando vai utilizá-lo, você já vai escolher a linguagem que quer utilizar e alguns recursos já vem instalados (por exemplo, o próprio Python). Além disso, como vamos desenvolver nosso site em um computador ** remoto **, quando você sair da oficina AfroPython, você vai poder acessar seu código de qualquer outro computador conectado à internet, para continuar aperfeiçoando-o. diff --git a/codenvy/selecionando_python.png b/codenvy/selecionando_python.png new file mode 100644 index 0000000..e24d547 Binary files /dev/null and b/codenvy/selecionando_python.png differ diff --git a/codenvy/workspace.png b/codenvy/workspace.png new file mode 100644 index 0000000..5ca9537 Binary files /dev/null and b/codenvy/workspace.png differ diff --git a/editor_de_codigo/editor_de_codigo/arquivo.png b/editor_de_codigo/editor_de_codigo/arquivo.png index 4a7a4d5..94aab77 100644 Binary files a/editor_de_codigo/editor_de_codigo/arquivo.png and b/editor_de_codigo/editor_de_codigo/arquivo.png differ diff --git a/editor_de_codigo/editor_de_codigo/novo_arquivo.png b/editor_de_codigo/editor_de_codigo/novo_arquivo.png index 626a86f..3ad3dfb 100644 Binary files a/editor_de_codigo/editor_de_codigo/novo_arquivo.png and b/editor_de_codigo/editor_de_codigo/novo_arquivo.png differ diff --git a/editor_de_codigo/introducao.md b/editor_de_codigo/introducao.md index b673672..c0facca 100644 --- a/editor_de_codigo/introducao.md +++ b/editor_de_codigo/introducao.md @@ -4,10 +4,10 @@ Você está prestes a escrever sua primeira linha de código, então precisamos 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”: +Para o tutorial, usaremos o editor do Codenvy. Para isso, basta criar um novo arquivo, clicando no primeiro botão do menu horizontal *"Create Python File”*: ![Criando novo arquivo](editor_de_codigo/novo_arquivo.png) Uma nova linha será criada. Coloque o nome do arquivo como 'teste' e aperte Enter: -![Criando novo arquivo](editor_de_codigo/arquivo.png) +![Criando novo arquivo](editor_de_codigo/arquivo.png) \ No newline at end of file diff --git a/linha_de_comando/basico.md b/linha_de_comando/basico.md index 816bc21..f5d4a0e 100644 --- a/linha_de_comando/basico.md +++ b/linha_de_comando/basico.md @@ -1,5 +1,5 @@ # O básico -Cada sistema operacional tem o seu próprio conjunto de instruções para a linha de comando, mas no sourcelair usamos um sistema Linux. +Cada sistema operacional tem o seu próprio conjunto de instruções para a linha de comando, mas no codenvy usamos um sistema Linux. 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/). diff --git a/linha_de_comando/conhecendo.md b/linha_de_comando/conhecendo.md index 4708924..bc0ec13 100644 --- a/linha_de_comando/conhecendo.md +++ b/linha_de_comando/conhecendo.md @@ -2,8 +2,8 @@ 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 diff --git a/linha_de_comando/linha_de_comando/prompt.png b/linha_de_comando/linha_de_comando/prompt.png index 9ce438e..a05b241 100644 Binary files a/linha_de_comando/linha_de_comando/prompt.png and b/linha_de_comando/linha_de_comando/prompt.png differ diff --git a/linha_de_comando/linha_de_comando/ssh_terminal.png b/linha_de_comando/linha_de_comando/ssh_terminal.png deleted file mode 100644 index d62f29d..0000000 Binary files a/linha_de_comando/linha_de_comando/ssh_terminal.png and /dev/null differ diff --git a/linha_de_comando/linha_de_comando/terminal.png b/linha_de_comando/linha_de_comando/terminal.png index 4b151be..29e3c8b 100644 Binary files a/linha_de_comando/linha_de_comando/terminal.png and b/linha_de_comando/linha_de_comando/terminal.png differ diff --git a/linha_de_comando/resumo.md b/linha_de_comando/resumo.md index 9e2cf1e..1b0baf6 100644 --- a/linha_de_comando/resumo.md +++ b/linha_de_comando/resumo.md @@ -2,7 +2,7 @@ Aqui vai uma lista de alguns comandos úteis: -| Comando (Windows)|Comando (MacOS/Linux/Sourcelair)| Descrição | Exemplo | +| Comando (Windows)|Comando (MacOS/Linux/Codenvy)| Descrição | Exemplo | |:----------------:|:-------------------:| -------------- |--------------| | exit | exit | Fecha a janela | **exit** | | cd | cd | Muda a pasta | **cd teste** | @@ -14,6 +14,6 @@ Aqui vai uma lista de alguns comandos úteis: 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. -Se você estiver curioso, [ss64.com](ss64.com) contém uma referência completa de comandos para todos os sistemas operacionais. +Se você estiver curioso, [ss64.com](https://ss64.com) contém uma referência completa de comandos para todos os sistemas operacionais. **Vamos começar? ** diff --git a/sourcelair/comecando_projeto.png b/sourcelair_old/comecando_projeto.png similarity index 100% rename from sourcelair/comecando_projeto.png rename to sourcelair_old/comecando_projeto.png diff --git a/sourcelair/criando_conta.md b/sourcelair_old/criando_conta.md similarity index 100% rename from sourcelair/criando_conta.md rename to sourcelair_old/criando_conta.md diff --git a/sourcelair/criando_projeto.md b/sourcelair_old/criando_projeto.md similarity index 100% rename from sourcelair/criando_projeto.md rename to sourcelair_old/criando_projeto.md diff --git a/sourcelair/novo_projeto.png b/sourcelair_old/novo_projeto.png similarity index 100% rename from sourcelair/novo_projeto.png rename to sourcelair_old/novo_projeto.png diff --git a/sourcelair/o_que_e.md b/sourcelair_old/o_que_e.md similarity index 100% rename from sourcelair/o_que_e.md rename to sourcelair_old/o_que_e.md diff --git a/sourcelair/projeto_django.png b/sourcelair_old/projeto_django.png similarity index 100% rename from sourcelair/projeto_django.png rename to sourcelair_old/projeto_django.png diff --git a/sourcelair/sourcelair.md b/sourcelair_old/sourcelair.md similarity index 100% rename from sourcelair/sourcelair.md rename to sourcelair_old/sourcelair.md