0% acharam este documento útil (0 voto)
20 visualizações3 páginas

Django

Um projeto Django é constituído por aplicações que fazem coisas diferentes no site. Modelos definem como os dados serão armazenados e trabalhados, representados por classes Python. Os modelos devem ser ativados adicionando a aplicação ao INSTALLED_APPS para funcionar no projeto.

Enviado por

David Buckley
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
20 visualizações3 páginas

Django

Um projeto Django é constituído por aplicações que fazem coisas diferentes no site. Modelos definem como os dados serão armazenados e trabalhados, representados por classes Python. Os modelos devem ser ativados adicionando a aplicação ao INSTALLED_APPS para funcionar no projeto.

Enviado por

David Buckley
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

DESIGN DE PROJETOS:

"[Link]"

um projeto django é constituído por várias 'aplicações' diferentes, cada uma faz
uma coisa no site (como uma para lidar com as contas dos usuários)

MODELOS
um modelo diz ao django como deve trabalhar com cada tipo de dado em nossa
aplicação. Um feed de notícias tem que ter os dados do nome do usuário (um texto
mais curto), a mensagem (um texto mais longo), um timestamp para mostrar a data de
publicação, uma imagem do perfil do usuário... tudo isso é definido com os modelos

Os modelos são apenas classes do python com as funcionalidades desejadas

fom [Link] import models


class Topic([Link]):
"""Um assunto sobre o qual o usuário está aprendendo."""
text = [Link](max_length=200)
date_added = [Link](auto_now_add=True)

def __str__(self):
"""Devolve uma reporesentação em string do modelo."""
return [Link]

o atributo 'text' é um CharField, ou seja, uma cadeia de caracteres. É usado quando


queremos armazenar uma pequena quantidade de texto, como um nome, endereço ou
título/descrição breve, e possui como parâmetro no CharField um 'max_length=200',
para especificar a quantidade máxima de caracteres a serem armazenados na database
(funciona como um varchar(200))

o atributo 'date_added' é um DateTimeField (um dado que registra uma data e hora).
O argumento 'auto_now_add=True' define esse atributo automaticamente com o valor do
momento em que for criado (data e hora)

OBS.: para ver diferentes tipos de campos para utilizar em um modelo, consultar o
Django Model Field Reference
([Link]

devemos dizer ao Django qual atributo deve ser usado como default quando exibir
informações sobre o tópico. Ele chama o método '__str__()' para exibir uma
representação simples de um modelo. No caso acima, o método __str()__ devolve a
string armazenada no atributo text (pois o método retorna o texto ('return
[Link]')).

ATIVANDO OS MODELOS

para usar os modelos criados, devemos incluir a aplicação em todo o projeto. Para
isso, no '[Link]', existe uma parte do código chamada:

'INSTALLED_APPS = (
--apps instaladas--
)'

Os modelos são uma tupla (imutável) de quais aplicações devem funcionar em conjunto
para compor todo o projeto, e é aqui que as aplicações criadas devem ser
adicionadas:

'INSTALLED_APPS = (
--trecho omitido--
'[Link]',
# Minhas aplicações:
'learning_logs',) # nome utilizado no livro

Em vez de adidionar apenas a classe 'Topic', foi adicionado o módulo


'learning_logs' inteiro, para que fique mais fácil controlar as classes criadas sem
ter que adicionar todas uma a uma no 'INSTALLED_APPS'

para criar urls personalizadas, criamos primeiro um aplicativo 'base' com o comando
no CMD 'python [Link] startapp base' (Depois, foi preciso criar um outro
ambiente virtual dentro do studybud e reinstalar o django dentro dele, pois não
reconhecia o django como módulo). Dentro de base, criamos um arquivo '[Link]', e
dentro dele importamos 'from [Link] import path' e 'from . import views', e
dentro de base/[Link] criamos uma lista:

urlpatterns = [
path('', [Link], name='home'),
path('room/', [Link], name='room'),

Nessa lista, criamos novas urls "a url root foi chamada de 'home', e a url
'root/room/' foi chamada 'room', e chamam funções dentro de base/[Link]

No base/[Link], importamos 'from [Link] import render' e 'from


[Link] import HttpResponse'. Criamos então duas funções:

def home(request):
return HttpResponse('Esta é a minha home page')

def room(request):
return HttpResponse('Esta é a minha página de salas')

No fim das contas, o base/[Link] diz que, quando a url for apenas a root (a main
page), irá chamar a função '[Link]', que é um HttpResponse que exibe 'Esta é a
minha homepage'

********** ::ESTUDAR:: **********

<form method="POST" action="" ></form>

{% csrf_token %}

from [Link] import ModelForm


from .models import Room
class RoomForm(ModelForm):
class Meta:
model = Room
fields = '__all__'

def createRoom(request):
if [Link] == 'POST':
print([Link])
form = RoomForm()
context = {'form': form}
return render(request, 'base/room_form.html', context)

Você também pode gostar