Книга «Изучаем Python»


source ll_env/bin/activate



Pdf көрінісі
бет231/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   227   228   229   230   231   232   233   234   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

source ll_env/bin/activate
(ll_env)learning_log$ 
python manage.py startapp learning_logs
 
(ll_env)learning_log$ 
ls
db.sqlite3 learning_log learning_logs ll_env manage.py
 
(ll_env)learning_log$ 
ls learning_logs/
admin.py __init__.py migrations models.py tests.py views.py
Команда 
startapp
имя_приложения
приказывает Django создать инфраструктуру, 
необходимую для построения приложения. Заглянув сейчас в каталог проекта, вы 
найдете в нем новый подкаталог с именем 
learning_logs

. Откройте этот каталог, 
чтобы увидеть, какие файлы были созданы Django 

. Самые важные файлы в этом 
каталоге — 
models .py

admin .py
и 
views .py
.
Мы воспользуемся файлом 
models .py
для определения данных, которыми нуж-
но управлять в нашем приложении. К файлам 
admin .py
и 
views .py
мы вернемся 
позднее.


386
Глава 18 • Знакомство с Django
Определение моделей
Ненадолго задумаемся, какие данные нам понадобятся. Каждый пользователь 
создает набор тем в своем журнале. Каждая запись, которую он сделает, будет при-
вязана к определенной теме, а записи будут выводиться в текстовом виде. Также 
необходимо хранить временну
́
ю метку каждой записи, чтобы пользователь знал, 
когда эта запись была создана.
Откройте файл 
models .py
и просмотрите его текущее содержимое:
models.py
from django.db import models
# Создайте здесь свои модели.
Модуль с именем 
models
импортируется автоматически, и нам предлагается создать 
свои модели. 
Модель
сообщает Django, как работать с данными, которые будут хра-
ниться в приложении. С точки зрения кода модель представляет собой обычный 
класс; она содержит атрибуты и методы, как и все остальные классы, рассматри-
вавшиеся нами ранее. Вот как выглядит модель тем обсуждения, которые будут 
сохраняться пользователями:
from django.db import models
class Topic(models.Model):
"""Тема, которую изучает пользователь"""
 
text = models.CharField(max_length=200)
 
date_added = models.DateTimeField(auto_now_add=True)
 
def __str__(self):
"""Возвращает строковое представление модели."""
return self.text
Мы создали класс с именем 
Topic
, наследующий от 
Model
— родительского класса, 
включенного в Django и определяющего базовую функциональность модели. Класс 
Topic
содержит всего два атрибута: 
text
и 
date_added
.
Атрибут 
text
содержит данные 
CharField
— блок данных, состоящий из символов, 
то есть текст 

. Атрибуты 
CharField
могут использоваться для хранения неболь-
ших объемов текста: имен, заголовков, названий городов и т. д. При определении 
атрибута 
CharField
необходимо сообщить Django, сколько места нужно зарезер-
вировать для него в базе данных. В данном случае задается максимальная длина 
max_length
, равная 200 символам; этого должно быть достаточно для хранения 
большинства имен тем.
Атрибут 
date_added
содержит данные 
DateTimeField
— блок данных для хранения 
даты и времени 

. Аргумент 
auto_add_now=True
приказывает Django автоматически 
присвоить этому атрибуту текущую дату и время каждый раз, когда пользователь 
создает новую тему.


Достарыңызбен бөлісу:
1   ...   227   228   229   230   231   232   233   234   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет