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



Pdf көрінісі
бет211/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   207   208   209   210   211   212   213   214   ...   238
Рис. 18.1. Пока все работает правильно

Начало работы над приложением

Проект Django представляет собой группу отдельных приложений, совместная 

работа которых обеспечивает работу проекта в целом. Пока мы создадим одно 

приложение, которое будет выполнять бульшую часть работы в нашем проекте. 

Другое приложение для управления учетными записями пользователей будет до-

бавлено в главе 19.

К этому моменту команда 

runserver

 должна продолжать работу в терминальном 

окне, которое вы открыли ранее. Откройте новое терминальное окно (или вкладку) 

и перейдите в каталог, содержащий 

manage .py

. Активизируйте виртуальную среду 

и выполните команду 

startapp


:

learning_log$ 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   ...   207   208   209   210   211   212   213   214   ...   238




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

    Басты бет