Aula 09 – Criando e ativando models no Django

More videos
Views
   

Aula 09 – Curso de Django

Criando uma primeira aplicação com Django e mysql no windows

Criando e ativando modelos no Django

https://docs.djangoproject.com/pt-br/1.11/intro/tutorial02/

Aplicação Django com mysql

Criando e ativando models no Django

Criando e ativando modelos no django

Agora vamos definir seus modelos, o banco de dados e seus metadados.

Filosofia

Um model é a única e definitiva verdade sobre seus dados, eles contém os campos essenciais e os comportamentos para os dados.

O Django segue o princípio don’t repeat yourself (DRY). O objetivo é definir o modelo de dados em um único local e automaticamente derivar coisas a partir dele.

Isso inclui as migrações, as migrações são inteiramente derivadas de seu arquivo de modelos, são essencialmente a forma que o Django atualiza o esquema de banco de dados para coincidir com seus models.

Então, o que acontece é que o django cria as tabelas e relacionamentos entre as tabelas do banco de dados da sua aplicação sem que você precise executar comandos em SQL e relaciona aos modelos da sua aplicação.

Nessa simples aplicação de enquete, nós iremos criar dois modelos: Question e Choice. Uma Question tem uma pergunta e uma data de publicação. Uma Choice tem dois campos: o texto da escolha e um totalizador de votos. Cada Choice é associada a uma Question. Ou seja, a Choice tem a chave estrangeira de Question.

Vamos representar com classes Python. Edite o arquivo polls/models.py, ele deverá ficar assim:

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

Agora edite o arquivo mysite/settings.py adicionando a configuração da app polls:


Agora edite o arquivo mysite/settings.py adicionando a configuração da app polls:
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Agora a migration:

python manage.py makemigrations polls
Saída deverá ser algo parecido com isso:

Migrations for 'polls':
  polls/migrations/0001_initial.py:
    - Create model Choice
    - Create model Question
    - Add field question to choice

Se quiser ver detalhes de como serão criadas as tabelas Choice e Question no banco de dados quando rodar o migrate, execute o comando abaixo:

python manage.py sqlmigrate polls 0001

O makemigrations não toca no banco de dados, ele apenas guarda em um arquivo .py, nesse caso o:

0001_initial.py

Todos os comandos sql que serão executados quando for rodado o comando:

python manage.py migrate

Que de fato efetivamente criará as tabelas Choice e Question no db_mysite.

Resumindo, o primeiro migrate gerou as tabelas das apps registradas no APP_INSTALLED dentro do settings.py

Depois nós criamos os modelos Question e Choice e então foi rodado o makemigrations que guardou em 0001_initial.py os comandos sql para poder gerar as tabelas Choice e Question no banco de dados, quando novamente for rodado o migrate.

Para baixar o código como está até agora, acesse o meu github no link abaixo:
https://github.com/toticavalcanti/django_course/tree/create_models

AULA  08

AULA  10

Obrigado

Até a próxima

Increva-se

Inscreva-se agora e receba um e-mail assim que eu publicar novo conteúdo.

Concordo em me inscrever no blog Código Fluente

Você poderá cancelar sua inscrição a qualquer momento.

(Visited 30 times, 1 visits today)
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>