Документация для разработчиков

Модели

Модель ExpressionHistory

class myapp.models.ExpressionHistory(*args, **kwargs)[исходный код]

Базовые классы: Model

Эта модель предназначена для хранения истории математических выражений и их результатов. expression: Поле типа CharField с максимальной длиной 255 символов. В этом поле хранится строка, представляющая математическое выражение. result: Поле типа IntegerField. Здесь хранится числовой результат вычисления выражения expression. created_at: Поле типа DateTimeField. Это поле автоматически устанавливается в момент создания записи и хранит дату и время создания записи.

exception DoesNotExist

Базовые классы: ObjectDoesNotExist

exception MultipleObjectsReturned

Базовые классы: MultipleObjectsReturned

created_at

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

expression

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_next_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=True, **kwargs)
get_previous_by_created_at(*, field=<django.db.models.fields.DateTimeField: created_at>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
result

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Модель StringQuery

class myapp.models.StringQuery(*args, **kwargs)[исходный код]

Базовые классы: Model

модель используется для хранения информации о запросах пользователей, связанных с обработкой и анализом строк. user: Поле типа ForeignKey, связанное с моделью User. Это поле указывает на пользователя, который сделал запрос. query_date: Поле типа DateField, которое автоматически устанавливает текущую дату, когда был сделан запрос. query_time: Поле типа TimeField, которое автоматически устанавливает текущее время, когда был сделан запрос. input_string: Поле типа TextField, предназначенное для хранения входящей строки, подлежащей обработке. word_count: Поле типа IntegerField, в котором хранится количество слов, найденных в input_string. char_count: Поле типа IntegerField, в котором хранится количество символов в input_string.

exception DoesNotExist

Базовые классы: ObjectDoesNotExist

exception MultipleObjectsReturned

Базовые классы: MultipleObjectsReturned

char_count

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

get_next_by_query_date(*, field=<django.db.models.fields.DateField: query_date>, is_next=True, **kwargs)
get_previous_by_query_date(*, field=<django.db.models.fields.DateField: query_date>, is_next=False, **kwargs)
id

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

input_string

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

objects = <django.db.models.manager.Manager object>
query_date

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

query_time

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

user

Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.

In the example:

class Child(Model):
    parent = ForeignKey(Parent, related_name='children')

Child.parent is a ForwardManyToOneDescriptor instance.

user_id
word_count

A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.

Представления (Views)

myapp.views.index(request)[исходный код]

Обработчик запроса для главной страницы. При вызове этой функции пользователю отображается главная страница. :param Объект HttpRequest от Django. :return Рендер главной страницы „index.html“.

myapp.views.riddle(request)[исходный код]

Обработчик запроса для главной страницы. При вызове этой функции пользователю отображается главная страница. :param Объект HttpRequest от Django. :return HttpResponse: Рендер главной страницы „index.html“.

myapp.views.answer(request)[исходный код]

Обработчик запроса для страницы с ответами на загадки. Показывает пользователю страницу с ответами на предыдущие загадки.

:param Объект HttpRequest от Django. :return: HttpResponse: Рендер страницы „answer.html“ с ответами на загадки.

myapp.views.multiply(request)[исходный код]

Обработчик запроса для страницы умножения числа. На этой странице пользователь может ввести число, и функция вернет результат его умножения на числа от 1 до 10. :param Объект HttpRequest от Django. :return: HttpResponse: Рендер страницы „multiply.html“ с результатами умножения или сообщением об ошибке.

myapp.views.generate_expression(request)[исходный код]

Обработчик запроса для генерации и оценки математических выражений.

При POST запросе пользователь отправляет математическое выражение, которое оценивается и записывается в историю. При GET запросе генерируется случайное выражение. :param request: Объект HttpRequest от Django. :return: HttpResponse: Рендер страницы „expression.html“ с результатом выражения или сообщением об ошибке.

myapp.views.is_safe_expression(expr)[исходный код]

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

Параметры:

expr – Строка, содержащая математическое выражение.

Результат:

Возвращает True, если выражение безопасно для оценки

myapp.views.expression_history(request)[исходный код]

Обработчик запроса для отображения истории математических выражений. Отображает все сохраненные выражения и их результаты.

Параметры:

request – Объект HttpRequest от Django.

Результат:

HttpResponse: Рендер страницы „history.html“ с историей выражений.

myapp.views.str2words_view(request)[исходный код]

Обработчик запроса для анализа строки и извлечения слов и чисел. Анализирует строку, введенную пользователем, извлекая слова и числа, и сохраняет запрос в базу данных. Доступен только аутентифицированным пользователям.

Параметры:

request – Объект HttpRequest от Django.

Результат:

HttpResponse: Рендер страницы „str2words.html“ с результатами анализа.

myapp.views.str_history(request)[исходный код]

Обработчик запроса для отображения истории запросов пользователя. Отображает историю запросов на анализ строк, сделанных текущим пользователем. Доступен только аутентифицированным пользователям.

Параметры:

request – Объект HttpRequest от Django.

Результат:

Рендер страницы „str_history.html“ с историей запросов.

Представления на основе классов (Class-Based Views)

class myapp.views.RegisterUser(**kwargs)[исходный код]

Базовые классы: CreateView

Класс представления для регистрации нового пользователя. Позволяет новым пользователям зарегистрироваться в системе.

Параметры:
  • form_class – Форма для регистрации пользователя.

  • template_name – Шаблон для отображения страницы регистрации.

  • success_url – URL для перенаправления после успешной регистрации.

form_class

alias of RegisterUserForm

form_valid(form)[исходный код]

If the form is valid, save the associated model.

success_url = '/login/'
template_name = 'register.html'
class myapp.views.LoginUser(**kwargs)[исходный код]

Базовые классы: LoginView

Класс представления для входа пользователя в систему. Позволяет пользователям войти в систему, используя свои учетные данные.

Параметры:
  • form_class – Форма для входа пользователя.

  • template_name – Шаблон для отображения страницы входа.

form_class

alias of LoginUserForm

get_success_url()[исходный код]

Return the URL to redirect to after processing a valid form.

template_name = 'login.html'

Функции управления сессиями

myapp.views.logout_user(request)[исходный код]

Обработчик запроса для выхода пользователя из системы. Позволяет пользователю выйти из системы и перенаправляет его на страницу входа.

Параметры:

request – Объект HttpRequest от Django.

Результат:

HttpResponse: Перенаправление на страницу входа.

Формы

class myapp.forms.RegisterUserForm(*args, **kwargs)[исходный код]

Форма для регистрации нового пользователя.

Наследует от UserCreationForm и добавляет дополнительные поля для логина, адреса электронной почты, пароля и подтверждения пароля. Поля настроены с пользовательскими классами CSS для улучшения внешнего вида.

Параметры:
  • username – Поле для ввода логина пользователя.

  • email – Поле для ввода адреса электронной почты.

  • password1 – Поле для ввода пароля.

  • password2 – Поле для подтверждения пароля.

class Meta[исходный код]
fields = ('username', 'email', 'password1', 'password2')
model

alias of User

base_fields = {'email': <django.forms.fields.EmailField object>, 'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>, 'username': <django.forms.fields.CharField object>}
declared_fields = {'email': <django.forms.fields.EmailField object>, 'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>, 'username': <django.forms.fields.CharField object>}
property media

Return all media required to render the widgets on this form.

class myapp.forms.LoginUserForm(request=None, *args, **kwargs)[исходный код]

Форма для входа пользователя в систему.

Наследует от AuthenticationForm и добавляет поля для логина и пароля с пользовательскими классами CSS. Предоставляет функционал для аутентификации пользователя.

Параметры:
  • username – Поле для ввода логина пользователя.

  • password – Поле для ввода пароля пользователя.

base_fields = {'password': <django.forms.fields.CharField object>, 'username': <django.forms.fields.CharField object>}
declared_fields = {'password': <django.forms.fields.CharField object>, 'username': <django.forms.fields.CharField object>}
property media

Return all media required to render the widgets on this form.

Маршруты URL (URL Patterns)

from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),
    path('riddle/', views.riddle, name='riddle'),
    path('answer/', views.answer, name='answer'),
    path('multiply/', views.multiply, name='multiply'),
    path('expression/', views.generate_expression, name='generate_expression'),
    path('history/', views.expression_history, name='history'),
    path('str2words/', views.str2words_view, name='str2words'),
    path('str_history/', views.str_history, name='str_history'),
    path('login/', views.LoginUser.as_view(), name='login'),
    path('logout/', views.logout_user, name='logout'),
    path('register/', views.RegisterUser.as_view(), name='register'),
]