Промпт для создания модуля авторизации на Django

×

Модуль авторизации на Django

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

Иконка глаза 1
Категория: Написание кода
Модели: ChatGPT Claude Grok DeepSeek
Промпт на русском языке:

В конце ответа предоставь краткое описание промпта длиной в 300-350 символов.
```markdown
Входные параметры:
1. Название приложения: [app_name]
2. Версия Django: [django_version]
3. Методы аутентификации (email/username): [auth_methods]
4. Используемая СУБД (PostgreSQL/MySQL): [database]
5. Шаблонизатор (Django/Jinja2): [template_engine]

Шаги:
Этап 1. Инициализация проекта и установка зависимостей:
  1. Создать виртуальное окружение.
  2. Установить Django==[django_version] и библиотеку для выбранной СУБД.
  3. Запустить `django-admin startproject`.

Этап 2. Создание приложения аутентификации:
  1. Выполнить `python manage.py startapp [app_name]`.
  2. Добавить [app_name] и `'django.contrib.auth'` в INSTALLED_APPS.
  3. Настроить DATABASES для [database].

Этап 3. Модели и формы:
  1. В models.py создать кастомную модель пользователя, если нужно, или использовать AbstractUser.
  2. В forms.py прописать формы регистрации и входа с полями в соответствии с [auth_methods].

Этап 4. Представления и маршруты:
  1. В views.py реализовать функции/классы регистрации, входа, выхода.
  2. В urls.py зарегистрировать пути `/register/`, `/login/`, `/logout/`.
  3. Подключить встроенные mixin’ы для защиты страниц.

Этап 5. Шаблоны и интерфейс:
  1. Создать папку templates/[app_name]/ с файлами register.html, login.html.
  2. Использовать [template_engine]-синтаксис для форм и CSRF-токена.

Этап 6. Тестирование и валидация:
  1. Написать unit-тесты для регистрации и входа.
  2. Проверить работу сессий и защиту от CSRF.

Критерии успешного выполнения:
- Пользователь может зарегистрироваться и войти с выбранным методом ([auth_methods]).
- Переход к защищенной странице требует аутентификации.
- Корректное отображение форм и сообщений об ошибках.
- Проект запускается без ошибок и миграции применяются успешно.

Типичные ошибки:
- Пропущенный CSRF-токен в шаблонах.
- Неправильная настройка DATABASES.
- Конфликт URL-шаблонов.
- Неподключенные приложения в INSTALLED_APPS.

Промпт на английском языке:

Input parameters:
1. Application name: [app_name]
2. Django version: [django_version]
3. Authentication methods (email/username): [auth_methods]
4. Database (PostgreSQL/MySQL): [database]
5. Template engine (Django/Jinja2): [template_engine]

Steps:
Stage 1. Initialize project and install dependencies:
  1. Create virtual environment.
  2. Install Django==[django_version] and the driver for [database].
  3. Run `django-admin startproject`.

Stage 2. Create auth app:
  1. Run `python manage.py startapp [app_name]`.
  2. Add [app_name] and 'django.contrib.auth' to INSTALLED_APPS.
  3. Configure DATABASES for [database].

Stage 3. Models and forms:
  1. In models.py define custom User model or use AbstractUser.
  2. In forms.py create registration and login forms according to [auth_methods].

Stage 4. Views and routes:
  1. Implement register, login, logout in views.py.
  2. Register `/register/`, `/login/`, `/logout/` in urls.py.
  3. Apply built-in mixins for protected pages.

Stage 5. Templates and UI:
  1. Create templates/[app_name]/ with register.html, login.html.
  2. Use [template_engine] syntax with CSRF token.

Stage 6. Testing and validation:
  1. Write unit tests for registration and login.
  2. Verify session handling and CSRF protection.

Success criteria:
- User can register and login via [auth_methods].
- Access to protected pages requires authentication.
- Forms and error messages display correctly.
- Project runs without errors and migrations apply.

Common pitfalls:
- Missing CSRF token in templates.
- Misconfigured DATABASES.
- URL pattern conflicts.
- Apps not added to INSTALLED_APPS.