Open huogerac opened 2 years ago
$ tree
├── db.sqlite3
├── manage.py
├── ola_mundo_django
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
└── templates
└── ola_mundo.html
#urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.ola_mundo),
]
#views.py
from django.http import HttpResponse
from django.shortcuts import render
def ola_mundo(request):
# Responde um texto dentro do HTTP
#return HttpResponse("Ola mundo")
# Responde um arquivo HTML gerado pelo Django
texto = "Olá Mundo!!!!! " * 4
return render(request, "ola_mundo.html", {"texto": texto})
#settings.py
import os
from pathlib import Path
...
TEMPLATES = [
{
...
'DIRS': [
os.path.join(BASE_DIR, './templates'),
],
...
},
]
context must be a dict rather than tuple.Request Method: | GET -- | -- http://127.0.0.1:8000/ 4.0.5 TypeError context must be a dict rather than tuple. /home/gloriabrito/.local/lib/python3.8/site-packages/django/template/context.py, line 278, in make_context /usr/bin/python 3.8.10 ['/home/gloriabrito/Área de Trabalho/buser/django-pratica/ola_mundo_django', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/gloriabrito/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages'] Mon, 27 Jun 2022 15:09:21 +0000
Passa o código da views.py
Funcionou. Era uma vírgula após a chave do dicionário na views.py. Obrigada!!
import random
mylist = ["apple", "banana", "cherry"]
random.shuffle(mylist)
print(mylist)
import random
mylist = ["apple", "banana", "cherry"]
print(random.choices(mylist, k = 2))
-----> onde K é o número de elementos a serem selecionados na lista;
Comandos para instalar o virtual env no terminal:
sudo apt-get update; sudo apt-get install -y aria2 build-essential libbz2-dev libffi-dev liblzma-dev libncurses5-dev \
libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev llvm make tk-dev libxml2-dev libxmlsec1-dev \
xz-utils zlib1g-dev python3-pip ;
pip3 uninstall virtualenv
sudo apt-get install -y python3-virtualenv
DISCLAIMER: ------> a barra '\' significa o fim de um comando. Execute um de cada vez no terminal.
virtualenv meu-1o-ambiente-virtual
source meu-1o-ambiente-virtual/bin/activate
. deactivate
;pip install Django
dentro do seu ambiente virtual;pip install -U pip --user
django-admin
django-admin startproject --help
para descobrir o que se pode fazer com o comando;django-admin startproject nome_do_projeto
para começar o seu primeiro projeto utilizando Django;startproject
será criada uma pasta com conteúdo próprio gerado pelo framework;cd ola_mundo
para poder executar o manage.py corretamente, pois ele estará dentro dessa pasta;./manage.py --help
para ver o que os parâmetros que podem ser passados para o módulo manage.py;./manage.py runserver
---> servidor que está rodando o django / gera uma página web para o django;CTRL + CLICK
no ip que irá aparecer para abrir o web template gerado pelo Django. Normalmente a url gerada pelo Django será a "http://127.0.0.1:8000/";----> Disclaimer: Pode ser que nessa etapa ocorra um erro relacionado ao "MIGRATIONS" do Django, mas não se desespere! Basta apenas digitar o comando que será exibido no terminal colorido de vermelho para instalar as dependências do banco de dados do Django e rodar o comando do manage.py novamente.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Olá Mundo</title>
</head>
<body>
<h1>{{texto}}</h1>
</body>
</html>
import os
no topo do módulo settings.py;'DIRS': [
os.path.join(BASE_DIR, './templates'),
],
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, './templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
from django.shortcuts import render
def ola_mundo(request):
texto = "Olá Mundo!!!!! " * 4
return render(request, "ola_mundo.html", {"texto": texto}) ---> agora a página web consegue ler variáveis nessa view
from . import views
. Onde estamos dizendo assim: "Olha Django, importe para mim o módulo "views" presente nessa mesma pasta(por isso o '.' após o 'import');
Por fim, basta adicionar o seguinte o caminho da nossa view para passar o conteúdo da nossa view.py para a URL principal do nosso projeto: path('', views.ola_mundo),
e pronto, finalizamos a nossa primeira prática;
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [ path('admin/', admin.site.urls), path('', views.ola_mundo), ]
* Para finalizar, basta rodar o comando ```./manage.py runserver``` no terminal novamente e acessar nossa aplicação Django pelo ip gerado.
👉 Deixe um comentário, não importa se é dúvida, crítica ou sugestão! Vamos discutir aqui tudo que for possível sobre a Parte 1) Fazendo o Olá mundo usando Django
É muito importante que você não fique com dúvidas!