Introdução ao Django – Introdução e Tutorial

Divulgação: Seu suporte ajuda a manter o site funcionando! Ganhamos uma taxa de indicação por alguns dos serviços que recomendamos nesta página.


O Django é uma estrutura de desenvolvimento rápido para aplicativos da Web, escrita em Python.

Uma estrutura de desenvolvimento é um esqueleto de aplicativo, com um conjunto de ferramentas para a construção rápida de software e uma opinião sobre como o software deve ser construído.

As estruturas reduzem o código padrão, fornecendo os recursos mais comuns – conectividade de banco de dados, logins de usuários, gerenciamento de sessões, roteamento de solicitações. Elas são necessárias em quase todos os aplicativos, independentemente da finalidade específica do aplicativo, e não precisam ser redesenhadas para cada novo projeto.

Uma estrutura de desenvolvimento também fornece uma arquitetura para o sistema. Em vez de gastar tempo e energia decidindo como organizar o código (ou ter problemas intermináveis ​​por não fazê-lo), uma estrutura possui uma maneira correta de organizar recursos, para que você possa começar a criá-los..

Veremos como é essa estrutura ao avançarmos na configuração de um primeiro aplicativo.

Começando

A única coisa que você realmente precisa é de acesso à Internet, um conhecimento muito básico da linha de comando e um editor de código.

A maioria dos usuários do Linux provavelmente sabe acessar o Terminal, mas aqui está um guia rápido para o terminal do Linux, caso você não tenha. Se você estiver em um Mac OS X, possui uma linha de comando do tipo Linux / Unix acessível no aplicativo Terminal.

A linha de comando do Windows é um pouco diferente da do Mac OS X e Linux (chamada bash).

Você pode usar o Windows Powershell, mas precisará “traduzir” um pouco – não apenas aqui, mas na maioria dos outros tutoriais e guias de referência.

A abordagem mais fácil é provavelmente simplesmente instalar um terminal bash.

Você tem poucas opções:

  • Cygwin: esta é uma coleção de ferramentas Linux / Unix para Windows, incluindo um terminal bash.
  • Gitbash: O Git para Windows vem com uma implementação bash. Você provavelmente desejará usar o git (e o Github) para o controle de versão, portanto, essa é uma solução bastante fácil.
  • O Windows 10 inclui um shell Bash baseado no Ubuntu, o que é incrível. Demora um pouco para fazer funcionar.

Instalando Tudo

Existem várias etapas para executar o Django: Python, Atualize o gerenciador de pacotes Python, configure seu ambiente virtual e instale o Django.

Pitão

Se você não possui o Python no seu computador, precisa dele. Veja a página de downloads do Python para obter links para o Python para todos os principais sistemas operacionais.

Você quer o Python 3, não o Python 2. Você pode usar o Python 2 com o Django, mas o Python 3 é o presente e o futuro da linguagem.

Se você está apenas entrando no Python e Django, use o Python 3.

Você já pode ter o Python 2 no seu computador. Até o momento, o Mac OS X é fornecido com o Python 2, e algumas distribuições Linux também. Instale o Python 3 e use-o. (Ter duas versões do Python no seu computador não será um problema, como você verá nas próximas etapas.)

Se você não tem certeza de qual versão do Python possui, digite python na linha de comando.

Isso vai lhe dizer. Por exemplo, o seguinte é o que você veria se estivesse executando o Python versão 3.5.1:

> Pitão
Python 3.5.1 (v3.5.1: 37a07cee5969, 5 de dezembro de 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (ponto 3)] em darwin
Tipo "Socorro", "direito autoral", "créditos" ou "licença" Para maiores informações.

Se a execução do python revelar a v2, tente python3. Se você tem o Python 3 instalado, isso deve lhe dizer.

Atualize o Gerenciador de Pacotes Python

O Python é enviado com pip, o gerenciador de pacotes do Python. No entanto, você precisará atualizá-lo (os pacotes de instalação do Python não são atualizados toda vez que o pip é atualizado). Felizmente, o pip se atualiza com um comando rápido do terminal:

> instalar pip – atualizar pip

Ambientes virtuais em Python

Qualquer projeto Python, incluindo um projeto Django, normalmente envolverá vários pacotes de terceiros separados.

Se você usa muito o Python, acabará por ter conflitos de versão – este projeto precisa da v4.3 de alguma coisa, enquanto esse projeto precisa da v5.1. A solução são ambientes virtuais Python.

Existem várias ferramentas do ambiente virtual para Python. Usamos virtualenv. Primeiro, instale-o com o pip:

> pip install virtualenv

Em seguida, configure um ambiente virtual para o seu projeto Django. Crie um novo diretório que abrigará seu (s) projeto (s) Django.

Esse diretório conterá o diretório do projeto e outras coisas; portanto, para não ficar confuso, é melhor dar um nome diferente do nome do projeto. Vamos chamar isso de django-projects.

Crie o diretório de contêiner e execute virtualenv de dentro do diretório.

Ao executar o virtualenv, especificaremos python3 e daremos um nome ao ambiente (djenv) e ativaremos o ambiente virtual.

> mkdir django-projects
> cd django-projects
~ / django-projetos > virtualenv -p python3 djenv
~ / django-projetos > fonte djenv / bin / ativar
(djenv) ~ / django-projetos >

Agora você está em um ambiente virtual chamado djenv. Quaisquer pacotes de pip que você instalar ou atualizar estarão disponíveis apenas quando este ambiente virtual estiver ativado.

Para desativar o ambiente virtual, basta digitar desativar.

Uma observação rápida sobre como nomear coisas – a maioria da documentação para virtualenv, Django e Python em geral usa venv como o nome de seu exemplo Ambiente Virtual.

Fazer isso sozinho pode ser confuso, porque você pode criar vários itens diferentes no seu computador e é útil lembrar qual é qual.

Além disso, venv é o nome de outra ferramenta do ambiente virtual Python.

Uma abordagem útil é nomear o ambiente com algo a ver com o projeto (como djenv para ambiente django), mas você pode nomear como quiser.

Instale o Django

Isso é bem fácil:

(djenv) ~ / django-projetos > pip install django

Você pode desativar seu ambiente virtual e instalar o Django em todo o sistema. Você decide.

De qualquer forma, o pip começará a instalar o Django e todas as suas dependências. Isso pode levar algum tempo.

Iniciando um projeto

Um “projeto” é (geralmente) entendido como um site único e completo (ou potencialmente uma família de sites).

Um site pode ter várias funcionalidades diferentes – um blog, um fórum, uma loja, um chat de ajuda.

Cada um deles é chamado de “aplicativo” (ou apenas “aplicativo”). Portanto, um projeto é uma coleção de aplicativos.

Isso é importante para a maneira como você estrutura as coisas, mas também é importante para a maneira como você denomina as coisas.

Imagine que você deseja criar um novo aplicativo da web que permita que as pessoas compartilhem fotos. Na sua opinião, o site inteiro é “o aplicativo”.

Mas se você inicializar seu projeto Django com o nome photo-share-app (ou o que for), ficará confuso com seus nomes de diretório duplicados.

A estrutura de um projeto Django

A estrutura de diretórios de um projeto Django é assim:

– /Nome do Projeto/
– Nome do Projeto/
– nome do aplicativo/
– nome do aplicativo/
– nome do aplicativo/

Ao inicializar seu projeto, você obtém o diretório do projeto de nível superior e o segundo dentro dele.

O nível superior atua como um contêiner para o restante. O segundo nível possui arquivos de configuração para o projeto como um todo.

O novo aplicativo que você está construindo estará em um (ou mais) diretórios de aplicativos adicionais.

Isso cria alguns aborrecimentos. Supondo que você esteja criando um novo aplicativo da web incrível com um nome incrível (vamos chamá-lo), se você não pensar sobre isso, vai acabar assim:

– / com
– com
– ?… como devo chamar o que estou construindo …? /

Aqui está uma sugestão:

– / wiht_site /
– wiht_site /
– wiht_app /

Isso torna tudo claro e fácil de lembrar. Além disso, facilita a instalação de qualquer recurso genérico do site que você deseja usar.

Ou você pode criar aplicativos personalizados adicionais para si mesmo, se eles fizerem sentido como módulos independentes:

– / wiht_site /
– wiht_site /
– wiht_app /
– aplicativo de blog de terceiros /
– aplicativo de fórum de terceiros /
– com-crm-app /

O Django Docs usa o meu site, e isso é bom para exemplos. Você quer um nome exclusivo para cada projeto.

(Obviamente, você não precisa criar um novo aplicativo para usar o Django. Você pode simplesmente configurar um projeto e usar uma coleção de aplicativos existentes.

Você pode instalar um site complexo e multifuncional com muita rapidez e ter flexibilidade posteriormente para adicionar aplicativos criados pelo cliente.

(Finalmente) inicialize seu projeto

Dentro de qualquer diretório “container” (usamos / django-projects acima) e com o seu Ambiente Virtual ativado, inicialize seu novo projeto com o comando django-admin.

(djenv) ~ / django-projetos > projeto inicial do django-admin wiht_site

Agora você tem:

– / wiht_site /
– manage.py
– wiht_site /
– __init__.py
– settings.py
– urls.py
– wsgi.py

Agora execute o servidor de teste para garantir que tudo aconteceu corretamente.

(djenv) ~ / django-projetos > cd wiht_site
(djenv) ~ / projetos-django / wiht_site > python manage.py runserver

Você obterá resultados como:

Executando verificações do sistema…

A verificação do sistema não identificou problemas (0 silenciados).

Você tem migrações não aplicadas; seu aplicativo pode não funcionar corretamente até que seja aplicado.
Execute ‘python manage.py migrate’ para aplicá-los.

22 de abril de 2016 – 17:45:53
Django versão 1.9, usando as configurações ‘wiht_site.settings’
Iniciando o servidor de desenvolvimento em http://127.0.0.1:8000/
Saia do servidor com CONTROL-C.

Abra http://127.0.0.1:8000 em um navegador e você verá algo funcionando: uma mensagem “Bem-vindo ao Django”.

Inicializando seu primeiro aplicativo

A partir daqui, suponha que estamos sempre no diretório wiht_site de nível superior (um subdiretório) com o ambiente djenv ativado.

Quando você vê isso nos exemplos:

>

Suponha que você está aqui:

(djenv) ~ / projetos-django / com aplicativo >

Crie um novo aplicativo com manage.py.

> python manage.py startapp wiht_app

Isso criará um novo diretório, / wiht_app /, com o seguinte conteúdo:

– __init__.py
– admin.py
– apps.py
– migrações /
– __init__.py
– models.py
– tests.py
– views.py

Agora você precisa “instalar” o aplicativo. Abra /wiht_site/wiht_site/settings.py e localize INSTALLED_APPS. Isso precisa ser editado para incluir seu novo aplicativo.

INSTALLED_APPS = [
‘wiht_app’,
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
]

Desenvolvendo algo

Os aplicativos Django têm algo parecido com uma arquitetura Model-View-Controller, que a documentação do Django às vezes chama de Model-View-Template.

Isso leva a um padrão de desenvolvimento iterativo fácil de adotar:

  • trabalhe no modelo, definindo que tipos de dados serão rastreados e como eles se relacionam;
  • trabalhe na Visualização, definindo como os dados devem ser acessados ​​e o que fazer quando os dados são manipulados;
  • trabalhar no modelo, definindo a aparência dos dados quando exibidos ao usuário ou consumidos por outro aplicativo.
Modelos e migrações

A criação de novos recursos geralmente começa com a criação de modelos. Modelos são classes (no sentido OOP) que definem os vários objetos em seu sistema e como eles se relacionam. Portanto, em um aplicativo de blog, você pode ter modelos para Postagem, Página, Categoria, Comentário e assim por diante – e talvez um comentário seja uma subclasse (um tipo de) postagem, e talvez postagens e páginas sejam subclasses de ContentItem.

Os modelos são gravados no arquivo models.py de cada aplicativo. Aqui está o começo de um modelo muito simples para postagens do blog.

dos modelos de importação django.db
de django.contrib.auth.models import User

# Crie seus modelos aqui.
classe Post (models.Model):

title = models.CharField (
max_length = 100,
)

slug = models.SlugField (
unique = True,
)

trecho = models.TextField (
max_length = 255,
)

content = models.TextField (
blank = True,
)

author = models.ForeignKey (
Do utilizador,
)

created = models.DateTimeField (
auto_now_add = True,
)

def __str __ (próprio):
retornar self.title

O Django possui seu próprio Object Relational Mapper (ORM), que fornece uma camada de abstração ao banco de dados. Isso permite definir seu modelo de dados sem referência a um sistema de gerenciamento de banco de dados específico e sem a necessidade de gravar SQL.

À medida que você adiciona modelos, você cria e executa migrações. Uma migração é um conjunto gerado automaticamente para comandos SQL que altera o design do banco de dados para corresponder aos modelos – o ORM do Django converte seus modelos em migrações SQL.

Antes de fazer isso, você deseja configurar seu banco de dados e conectá-lo. Você tem muitas opções aqui, mas a maioria dos usuários do Django prefere o PostgreSQL, e existem ferramentas especiais do PostgreSQL para o Django que não estão disponíveis para outros bancos de dados..

Depois de ter seu banco de dados em execução, você pode migrar.

> python manage.py makemigrations
> python manage.py migrate

Admin

O Django fornece uma visualização automática do administrador em seus dados, para que você possa executar operações básicas de CRUD com seus modelos quase que imediatamente. E se a interface do usuário de edição não for muito complexa, você pode usar o site Admin sem criar suas próprias visualizações de edição. Tudo o que você precisa fazer é registrar o modelo no módulo Admin. Isso é feito no admin.py, dentro do diretório do aplicativo.

do django.contrib import admin
de .models import Post

admin.site.register (publicação)

Agora, para efetuar login e acessar o Admin, crie um superusuário na linha de comando.

> python manage.py cria superusuário

Siga as instruções no terminal para nome de usuário, email e senha. Em seguida, inicie o servidor:

> python manage.py runserver

E você deve conseguir fazer login em http://127.0.0.1:8000/admin/. Se tudo estiver configurado corretamente, você poderá visualizar, adicionar, editar e excluir postagens de blog simples.

Agora seria um bom momento para criar um punhado de posts de amostra. Isso tornará o próximo passo mais significativo.

A vista

No Django, o “View” não é o código de exibição do front-end (chamado de “Template”). O que o Django chama de View é mais como um “Controller” em outras estruturas. É uma função que recebe uma solicitação HTTP como argumento e retorna uma resposta. Normalmente, a resposta é o conteúdo de uma página da web que é acessível a partir de um modelo; uma resposta também pode ser um redirecionamento, uma mensagem de erro, um arquivo ou outra coisa.

A situação mais comum é que você deseja enviar uma solicitação para um conteúdo específico (por exemplo, uma postagem específica) e recuperar todos os dados associados a esse conteúdo (o título, o trecho, o conteúdo, o autor). Outra situação comum é que você deseja exibir uma lista de itens de conteúdo, como na primeira página de um blog ou feed de notícias.

O Django fornece visualizações genéricas embutidas para fazer isso rapidamente. Os dois que usaremos são ListView e DetailView. Se você deseja estendê-los ou criar suas próprias visualizações, faça isso em views.py, mas as usaremos como estão por enquanto.

Agora só precisamos mapear essas visualizações para URLs. Em /wiht_site/urls.py, você precisará incluir o mapeamento de URL específico do aplicativo.

do URL de importação django.conf.urls, inclua
do django.contrib import admin

urlpatterns = [
URL (r ‘^ admin /’, admin.site.urls),
url (r ‘^’, include (‘wiht_app.urls’)),
]

Em seguida, edite os URLs do seu aplicativo..

do URL de importação django.conf.urls, inclua
de . importar vistas
de django.views.generic import ListView, DetailView
de .models import Post

urlpatterns = [
url (
r ‘^ blog /

A função url () que define cada padrão possui uma série de argumentos separados por vírgula:

  • uma expressão regular que define um padrão de URL para comparar solicitações recebidas;
  • uma visualização definida, com argumentos:
    • Modelo;
    • nome do arquivo de modelo;
  • o nome desse padrão de URL.

Os padrões acima correspondem aos padrões / blog / e / blog / post-slug / URL aos ListView e DetailView e, em seguida, especificam seus modelos (index.html e post.html).

Modelo

Tudo o que resta é criar um modelo para exibir este conteúdo. Django usa modelos Jinja.

Crie três novos arquivos:

/wiht_site/wiht_app/templates/wiht_app/main.html

{% conteúdo bloqueado%}
{% endblock%}

/wiht_site/wiht_app/templates/wiht_app/index.html

{% se estende "wiht_app / main.html" %}

{% conteúdo bloqueado%}

Postagens

{% para entrada em object_list%}

{{entry.title}}

{{entry.excerpt}}

{% endfor%}

{% endblock%}

/wiht_site/wiht_app/templates/wiht_app/post.html

{% se estende "wiht_app / main.html" %}

{% conteúdo bloqueado%}

{{post.title}}

{{post.author}}
Publicado em: {{post.created}}
{{ Publicar conteúdo}}

{% endblock%}

Parabéns, agora você deve ter um aplicativo de blog em funcionamento.

Leitura e recursos adicionais

Temos mais guias, tutoriais e infográficos relacionados à codificação e desenvolvimento:

  • Introdução, recursos e perguntas frequentes sobre o Python: este artigo contém vários recursos para ajudá-lo a se tornar um profissional do Python.
  • Primer da Interface do Gateway do Servidor Web: aprenda como usar esta especificação para usar estruturas Python com o Django.
  • Introdução ao Ruby on Rails: este artigo apresentará uma alternativa ao Python e Django.

,
ListView.as_view (
queryset = Post.objects.all (). order_by (“created”) [: 50],
template_name = ”wiht_app / index.html”
),
nome = ‘pós-lista’
),
url (
r’blog / (? P [a-zA-Z0-9] + (?: – [a-zA-Z0-9] +) *) / A função url () que define cada padrão tem uma série de vírgulas separadas argumentos:

  • uma expressão regular que define um padrão de URL para comparar solicitações recebidas;
  • uma visualização definida, com argumentos:
    • Modelo;
    • nome do arquivo de modelo;
  • o nome desse padrão de URL.

Os padrões acima correspondem aos padrões / blog / e / blog / post-slug / URL aos ListView e DetailView e, em seguida, especificam seus modelos (index.html e post.html).

Modelo

Tudo o que resta é criar um modelo para exibir este conteúdo. Django usa modelos Jinja.

Crie três novos arquivos:

/wiht_site/wiht_app/templates/wiht_app/main.html

/wiht_site/wiht_app/templates/wiht_app/index.html

/wiht_site/wiht_app/templates/wiht_app/post.html

Parabéns, agora você deve ter um aplicativo de blog em funcionamento.

Leitura e recursos adicionais

Temos mais guias, tutoriais e infográficos relacionados à codificação e desenvolvimento:

  • Introdução, recursos e perguntas frequentes sobre o Python: este artigo contém vários recursos para ajudá-lo a se tornar um profissional em Python.
  • Primer da Interface do Gateway do Servidor Web: aprenda como usar esta especificação para usar estruturas Python com o Django.
  • Introdução ao Ruby on Rails: este artigo apresentará uma alternativa ao Python e Django.

,
DetailView.as_view (
model = Post,
template_name ="wiht_app / post.html"),
name ="postar"
)
]

A função url () que define cada padrão possui uma série de argumentos separados por vírgula:

  • uma expressão regular que define um padrão de URL para comparar solicitações recebidas;
  • uma visualização definida, com argumentos:
    • Modelo;
    • nome do arquivo de modelo;
  • o nome desse padrão de URL.

Os padrões acima correspondem aos padrões / blog / e / blog / post-slug / URL aos ListView e DetailView e, em seguida, especificam seus modelos (index.html e post.html).

Modelo

Tudo o que resta é criar um modelo para exibir este conteúdo. Django usa modelos Jinja.

Crie três novos arquivos:

/wiht_site/wiht_app/templates/wiht_app/main.html

/wiht_site/wiht_app/templates/wiht_app/index.html

/wiht_site/wiht_app/templates/wiht_app/post.html

Parabéns, agora você deve ter um aplicativo de blog em funcionamento.

cupom de hospedagem na web

Procurando muito na hospedagem do Django?
A A2 Hosting ficou em 1º lugar em nossos testes recentes de velocidade e desempenho. No momento, você pode economizar até 50% em seus planos orientados ao desenvolvedor.
Use este link de desconto
para conseguir o acordo.

Leitura e recursos adicionais

Temos mais guias, tutoriais e infográficos relacionados à codificação e desenvolvimento:

  • Introdução, recursos e perguntas frequentes sobre o Python: este artigo contém vários recursos para ajudá-lo a se tornar um profissional em Python.
  • Primer da Interface do Gateway do Servidor Web: aprenda como usar esta especificação para usar estruturas Python com o Django.
  • Introdução ao Ruby on Rails: este artigo apresentará uma alternativa ao Python e Django.
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map