{{ postagem. title }}
Postado em {{ post.timestamp }} por {{ post.author }}
{{ post.bodytext }}
venv
módulo. Dos documentos do Python:
Ovenv
O módulo fornece suporte para a criação de “ambientes virtuais” leves com seus próprios diretórios de sites, opcionalmente isolados dos diretórios de sites do sistema. Cada ambiente virtual tem seu próprio binário Python (que corresponde à versão do binário que foi usado para criar esse ambiente) e pode ter seu próprio conjunto independente de pacotes Python instalados em seus diretórios de site.
mkdir Django_projectscd Django_projectspython3.8 -m venv env
source env/bin/activatedjango-admin.py startproject FirstBlog
blog python3.8 manage.py startapp
__init__.py
file para torná-lo um pacote e três outros arquivos:models, tests e views. Não precisamos nos preocupar com testes por enquanto, mas os outros dois são importantes. Modelos e Visualizações são o M
e V
partes do MVC.
Se você já trabalhou com PHP antes, pode ter usado o PhpMyAdmin para criar suas tabelas MySQL e, em seguida, escrito suas consultas SQL manualmente em seus scripts PHP. No Django, é muito mais fácil. Definimos todas as estruturas de dados que precisamos neste arquivo de modelos, depois executamos um comando e todos os bancos de dados necessários são criados para nós.
urls
script que vimos anteriormente nas views
script, que então obtém dados relevantes dos modelos, os processa e os passa para um modelo, que finalmente é exibido como a página que o usuário vê. Vamos dar uma olhada nesses modelos em breve. Eles são a parte mais fácil - principalmente HTML. INSTALLED_APPS
em configurações.py Arquivo. INSTALLED_APPS =[ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib .staticfiles', 'blog',]
de django.db import modelsclass posts(models.Model):author =models.CharField(max_length =30) title =models.CharField(max_length =100) bodytext =models.TextField() timestamp =models.DateTimeField()
sudo apt install mysql-server
mysql --versão
mysql Ver 14.14 Distrib 5.7.33, para Linux (x86_64) usando o wrapper EditLine
sudo mysql
, e no prompt, digite:CREATE DATABASE django_blog;CREATE USER 'django'@'localhost' IDENTIFICADO COM mysql_native_password POR 'password';GRANT ALL ON django_blog.* TO 'django'@'localhost';FLUSH PRIVILEGES;
python3.8 manange.py runserver
em uma nova guia para iniciar o servidor de desenvolvimento. settings.py
. DATABASES ={ 'default':{ 'ENGINE':'django.db.backends.mysql', # Adiciona 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' ou 'oracle'. 'NAME':'django_blog', # Ou caminho para o arquivo de banco de dados se estiver usando sqlite3. 'USER':'django_user', # Não usado com sqlite3. 'PASSWORD':'password', # Não usado com sqlite3. 'HOST':'', # Definido como string vazia para localhost. Não usado com sqlite3. 'PORT':'', # Definido como string vazia por padrão. Não usado com sqlite3. }}
python3.8 manage.py makemigrationsMigrations for 'blog':blog/migrations/0003_post.py - Criar modelo de postagem
python3.8 manage.py migrar
python3.8 manage.py createsuperuser
de django.contrib import adminfrom django.urls import path,includeurlpatterns =[ path('admin/', admin.site.urls), path("", include('blog.urls')),]Criar a primeira visualização
Vamos criar nossa primeira visualização, que renderizará uma página HTML simples. Abra blog/views.py e adicione o seguinte código.
de django.shortcuts import renderfrom .models import Postdef home(request):return render('index.html')Criar o modelo de visualização
Este index.html arquivo ainda não existe. O Django carregará automaticamente os templates do diretório de templates. Crie uma pasta chamada modelos no aplicativo do blog e, dentro dele, crie um arquivo chamado index.html . O diretório da pasta deve ficar assim:
blog -templates -blog -index.html
Adicione o seguinte código em index.html .
Primeiro blog Primeiro blog
Título
Publicado na data pelo autor
Corpo do texto
Agora, vamos criar os URLs do nosso blog. Crie o arquivo urls.py no diretório do blog e escreva o caminho da URL para servir a página de índice.
de django.urls import pathfrom . import viewsurlpatterns =[ path('', views.home), ]
Agora, se você navegar até http://127.0.0.1:8000/home , você deverá ver a página a seguir atualizada com este novo conteúdo.
![]()
![]()
![]()
Incorporar dados do banco de dados
A próxima etapa é adicionar conteúdo dinâmico do banco de dados. Para fazer isso, o Django tem uma linguagem de modelagem que permite incorporar variáveis com chaves. Altere a seção do meio da sua página para ficar assim:
Primeiro blog
{{ title }}
Postado em {{ date }} por {{ author }}
{{ corpo }}
Podemos então passar valores para esses marcadores de variáveis do views.py arquivo criando um dicionário de valores.
def home(request):content ={ 'title' :'My First Post', 'author' :'Giles', 'date' :'18 de setembro de 2011', 'body' :'Lorem ipsum dolor sit amet , consectetur adipiscing elit. Etiam cursus tempus dui, ut vulputate nisl eleifend eget. Aenean justo felis, dapibus quis vulputate at, porta et dolor. Praesent enim libero, maleuada nec vestibulum vitae, fermentum nec ligula. Etiam eget convallis turpis. Donec non sem justo.', } return render(request,'blog/index.html', content)
Salve e atualize, e você verá que agora está passando o conteúdo para um modelo do seu arquivo de visualizações. A etapa final é obter dados do nosso banco de dados e transmiti-los. Felizmente, podemos fazer isso sem consultas SQL usando os modelos do Django. Acesse blog/views.py e atualize o código para buscar dados do banco de dados.
def home(request):posts =Post.objects.all()[:10] return render(request,'blog/index.html', {"posts":posts})
Em seguida, atualize o modelo para acessar esses dados.
Primeiro blog
{% para postagem em postagens %}{{ postagem. title }}
Postado em {{ post.timestamp }} por {{ post.author }}
{{ post.bodytext }}
{% endfor %}
Aqui, podemos acessar todos os dados em nossa tabela no views.py arquivo e, em seguida, selecione apenas as dez primeiras entradas. Passamos esses dados para o modelo, percorremos as entradas e exibimos os dados com o HTML do nosso site.
Sistema de administração do Django
A última coisa que precisamos fazer hoje é revisar o sistema de administração do Django. Este é um recurso realmente poderoso do Django que permite gerenciar seu site sem escrever mais nenhum código, como você teria que fazer se estivesse criando um site do zero. Para permitir que o administrador controle suasposts
tabela, vamos registrar nossoPost
model no admin do Django e adicione alguns dados no banco de dados. Abra blog/admin.py e adicione o seguinte código.
de django.contrib import adminfrom .models import Post# Registre seus modelos aqui.admin.site.register(Post)
Agora você poderá adicionar novas entradas de blog visitando http://127.0.0.1:8000/admin/blog/post/.
Isso é tudo que há para fazer. Você acabou de criar um blog totalmente funcional, embora simples. Para terminar esta lição, veremos como instalar o Django em um servidor web.
Instalando em um servidor Web
Existem dois tipos de hospedagem na web, e qual você tem afetará se você pode usar o Django. Se você tem hospedagem compartilhada, está inteiramente à mercê do seu host.
Muitos hosts da web baratos não suportam Python. Embora o PHP seja quase garantido, o suporte para outras linguagens geralmente não é. Você terá que verificar o painel de controle para determinar se Python (e Django) estão disponíveis. Obviamente, o processo é um pouco diferente com cada host. Quase todas as hospedagens rodam no Apache, e podemos usá-lo para hospedar o Django, usando omod_wsgi
oumod_python
Módulos Apache.
A maioria dos hosts da Web executa scripts em vários idiomas usando CGI. O Django pode ser executado em FastCGI e também, teoricamente, em CGI, mas isso não é oficialmente suportado e seria muito lento para um site de produção real. Você precisará verificar se eles estão instalados. Eles geralmente são encontrados em um título, como “CGI and Scripting Language Support”.
Se você tem hospedagem VPS, ou tem a sorte de ter um servidor dedicado, sua vida é muito mais fácil. Normalmente, eles vêm com o Python pré-instalado e, a partir daí, você só precisa seguir as mesmas etapas que passamos para obter uma cópia local do Django em execução. Se você não tiver o Python, poderá instalá-lo com um gerenciador de pacotes. Seu sistema pode até vir com Django.
Depois de instalar o Django em seu servidor, faça o upload do site que você acabou de criar usando qualquer cliente de transferência de arquivos. Você pode colocar os arquivos em qualquer lugar, mas mantenha-os fora dopublic
pasta, ou qualquer pessoa poderá ver o código-fonte do seu site. Eu uso/home
para todos os meus projetos.
Em seguida, crie um banco de dados MySQL chamado django_blog em seu servidor. Você terá que criar sua conta para o painel de controle do administrador novamente, mas isso é uma coisa única.
Se você tentar executar isso, poderá receber um erro, e isso ocorre porque as configurações do servidor são diferentes daquelas em seu computador local. Pode ser necessário alterar a senha do banco de dados em settings.py , mas dependendo da configuração do seu servidor, você também pode encontrar outros problemas. O Google é seu amigo nessas situações!
Para executar o servidor desta vez, o comando é um pouco diferente. Você precisa especificar um endereço IP e uma porta para poder acessar o site pela Internet.
python.8 manage.py runserver your-server-ip:8000
Se você visitar seu site em um navegador da Web, na porta 8000, deverá ver seu site!