Документация для разработчиков¶
Модели¶
Модель 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.parentis aForwardManyToOneDescriptorinstance.
- 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'),
]