Implantar aplicativo baseado em Django

no Amazon Lightsail

O Amazon Lightsail é a maneira mais fácil de começar a usar a AWS. Ele oferece servidores virtuais, armazenamento, bancos de dados e redes, além de um plano mensal econômico.

Neste tutorial, você implantará um aplicativo de exemplo baseado em Django no Lightsail. Você começa criando a instância e implantando seu aplicativo. A seguir, você garante que o aplicativo esteja em execução corretamente usando o servidor Web integrado do Django. Por fim, você configura o Apache para hospedar o aplicativo.

Comece a usar o Lightsail gratuitamente.

Pré-requisitos

Neste tutorial de nível intermediário, assumimos que você tem:

  • Um entendimento básico da linha de comando do Linux (cp, cat, etc.)
  • A capacidade de usar um editor de texto do Linux (vi, nano, etc.)
  • No mínimo um entendimento básico do Django e do Python
  • Uma conta gratuita do Amazon Web Services
Sobre este tutorial
Duração 30 minutos                                     
Custo Pode haver custos
Caso de uso Computação
Produtos Amazon Lightsail
Público Desenvolvedor
Nível Intermediário 
Data da última atualização 23 de março de 2020

Você já tem uma conta? Faça login

1. Criar uma instância do Lightsail

a. Faça login em sua conta da AWS e navegue até a página inicial do Lightsail.


b. Clique em Criar instância.

django1

c. Escolha a região da AWS apropriada.

add django
django2

d. Escolha uma zona de disponibilidade.

django3
django4

e. Em Selecionar um esquema, escolha Django.

 

django5

f. Você pode deixar as outras configurações com os valores padrão. Role para a parte inferior da tela e clique em Criar instância.

 

2. Implantar um projeto do Django

Nesta seção, você vai implantar um aplicativo “Hello, World”. Você usará a linha de comando do Django para criar um novo projeto, bem como um novo aplicativo antes de adicionar o código de aplicativo real na próxima seção.

Se você já tem um aplicativo do Django escrito, sinta-se à vontade para usá-lo neste tutorial. Contudo, anote a estrutura de diretório usada no aplicativo “Hello, World”, pois isso será importante ao configurar seu próprio aplicativo.

O projeto do Django estará no seguinte diretório

/opt/bitnami/apps/django/django_projects/tutorial

O projeto em si será armazenado no seguinte diretório

/opt/bitnami/apps/django/django_projects/tutorial/tutorial

O aplicativo será criado no seguinte diretório

/opt/bitnami/apps/django/django_projects/tutorial/tutorial/hello_world


a. Na página inicial do Lightsail, clique no ícone do cliente SSH baseado em navegador para sua instância do Django. Isso iniciará uma sessão SSH em sua instância. Todos os comandos a seguir devem ser executados nessa sessão.

django6

b. Insira os comandos a seguir para acessar o diretório django_projects e criar um novo projeto de tutorial.
cd /opt/bitnami/apps/django/django_projects && \
django-admin.py startproject tutorial

c. Insira os comandos a seguir para acessar o diretório do projeto tutorial e criar um novo app hello_world.

cd tutorial && python3 manage.py startapp hello_world

3. Adicionar o código do seu aplicativo

Agora que você estruturou seu aplicativo, é o momento de adicionar algum código. O aplicativo exibirá apenas “Hello, World” sempre que a página Web for carregada.

Você ainda precisa estar executando esses comandos na janela de cliente SSH baseado em navegador do Lightsail.


a. Insira o comando a seguir para abrir o arquivo views.py usando o editor de texto Vim:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/hello_world/views.py

b. Pressione I para editar o arquivo e substitua o código existente pelo seguinte:

from django.http import HttpResponse

def index(request):
     return HttpResponse("Hello, world")

c. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


d. Insira o seguinte comando criar um arquivo urls.py para seu aplicativo no mesmo diretório que o arquivo views.py:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/hello_world/urls.py

e. Pressione I para editar o arquivo e adicione o seguinte código:

from django.urls import path
from . import views

urlpatterns = [
     path('', views.index, name='index'),
]

f. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


g. Insira o seguinte comando para abrir o arquivo urls.py:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/tutorial/urls.py

h. Pressione I para editar o arquivo e substitua o código existente pelo seguinte:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('', include('hello_world.urls')),
    path('admin/', admin.site.urls),
]

i. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


4. Testar o aplicativo

Em seguida, você vai usar o servidor Web integrado do Django para verificar se tudo está funcionando conforme esperado. Por padrão, o Apache está usando a porta 80 em sua instância do Lightsail, então você executará o servidor Web do Django na porta 8000. Para ser capaz de acessar o site, você precisará abrir a porta 8000 no firewall do Lightsail.


a. Volte à página inicial do Lightsail e clique no nome de sua instância do Django.


b. No menu horizontal, clique em Redes.

django7

c. Em Firewall, clique em Adicionar outra.

django8

d. Em Intervalo de portas, digite 8000 e clique em Salvar.

django9

e. Volte para a página inicial do Lightsail e anote o endereço IP da instância.

django10

f. Volte para a sessão do terminal e insira o comando a seguir para abrir o arquivo settings.py:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/tutorial/settings.py

g. Pressione I e altere a linha ALLOWED_HOSTS para incluir o endereço IP de sua instância do Lightsail como mostrado no exemplo a seguir.

Observação: ao editar seu arquivo settings.py, certifique-se de substituir 192.0.2.143 pelo endereço IP público de sua instância.

ALLOWED_HOSTS = ['192.0.2.143']

h. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


i. Insira o seguinte comando para iniciar o servidor Web do Django na porta 8000:

cd /opt/bitnami/apps/django/django_projects/tutorial/ && python3 manage.py runserver 0.0.0.0:8000

j. Direcione seu navegador Web para a porta 8000 do endereço IP das instâncias (por exemplo, http:// 192.0.2.143:8000).

Você deve ver “Hello, World”, que confirma se o aplicativo está em execução.

5. Hospedar o aplicativo usando o Apache

Não é recomendado executar aplicativos de produção usando o servidor integrado do Django. Portanto, nesta seção final, você vai configurar o Apache para disponibilizar o aplicativo.

Você fará isso configurando o aplicativo para usar a Web Services Gateway Interface (WSGI), em seguida criará um host virtual do Apache (vHost).

Você ainda precisa estar executando esses comandos na janela de cliente SSH baseado em navegador do Lightsail.


a. Digite o seguinte comando para editar o arquivo wsgi.py:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/tutorial/wsgi.py

b. Digite :1,$d e pressione Enter para selecionar tudo e exclua o conteúdo existente do arquivo wsgi.py.


c. Pressione I para editar e adicione o seguinte código ao arquivo wsgi.py:

import os
import sys
sys.path.append('/opt/bitnami/apps/django/django_projects/tutorial')
os.environ.setdefault("PYTHON_EGG_CACHE", "/opt/bitnami/apps/django/django_projects/tutorial/egg_cache")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tutorial.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

d. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


e. Insira o seguinte comando para criar um diretório conf para seu aplicativo

mkdir /opt/bitnami/apps/django/django_projects/tutorial/conf

f. Insira o seguinte comando para criar um arquivo httpd-app.conf no diretório conf que acabou de criar.

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-app.conf

g. Pressione I para editar e adicione o seguinte código:

<IfDefine !IS_DJANGOSTACK_LOADED>
      Define IS_DJANGOSTACK_LOADED
      WSGIDaemonProcess wsgi-djangostack   processes=2 threads=15    display-name=%{GROUP}
</IfDefine>

<Directory "/opt/bitnami/apps/django/django_projects/tutorial/tutorial">
    Options +MultiViews
    AllowOverride All
    <IfVersion >= 2.3>
        Require all granted
    </IfVersion>

    WSGIProcessGroup wsgi-djangostack

    WSGIApplicationGroup %{GLOBAL}
</Directory>

Alias /tutorial/static "/opt/bitnami/apps/django/lib/python3.7/site-packages/Django-2.2.9-py3.7.egg/django/contrib/admin/static"
WSGIScriptAlias /tutorial '/opt/bitnami/apps/django/django_projects/tutorial/tutorial/wsgi.py'

h. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


i. Insira o seguinte comando para criar um arquivo httpd-prefix.conf no diretório conf para seu aplicativo:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-prefix.conf

j. Pressione I para editar e adicione o seguinte código:

Include "/opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-app.conf"

k. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


l. Insira o seguinte comando para abrir o arquivo bitnami-apps-prefix.conf:

sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf

m. Pressione I para editar e adicione a seguinte linha ao final do arquivo:

Include "/opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-prefix.conf"

n. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


o. Insira o seguinte comando para abrir o arquivo bitnami.conf:

sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami.conf

p. Digite :1,$d e pressione Enter no Vim para selecionar tudo e exclua o conteúdo do arquivo bitnami.conf.


q. Pressione I para editar e adicione o seguinte código ao arquivo:

<VirtualHost _default_:80>
    WSGIScriptAlias / /opt/bitnami/apps/django/django_projects/tutorial/tutorial/wsgi.py

    <Directory /opt/bitnami/apps/django/django_projects/tutorial>
    AllowOverride all
        Require all granted
        Options FollowSymlinks
    </Directory>

    DocumentRoot /opt/bitnami/apps/django/django_projects/tutorial
</VirtualHost>

r. Pressione Esc, digite :wq! e pressione Enter para salvar e encerrar o Vim.


s. Insira o seguinte comando para reiniciar o Apache:

sudo /opt/bitnami/ctlscript.sh restart apache

t. Direcione seu navegador Web para o endereço IP da sua instância (por exemplo, http:// 192.0.2.143).

Você deve ver “Hello, World”, que confirma se o aplicativo está em execução.

Parabéns

Parabéns, você concluiu o tutorial. Você implantou com êxito um aplicativo baseado no Django no Lightsail.

O Amazon Lightsail é uma ótima opção para desenvolver, criar e implantar vários aplicativos como WordPress, sites e plataformas de blog. 

Este tutorial foi útil para você?

Agradecemos a sua atenção
Gostaríamos de saber do que você gostou.
Fechar
Desculpe por ter desapontado
Encontrou algo desatualizado, confuso ou incorreto? Envie seus comentários para nos ajudar a melhorar este tutorial.
Fechar