Skip to content

mullakaev/python-password-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Генератор паролей

Текущая версия: 1.1.0

MIT License

Описание

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

Технологии:

  • Бэкенд: Python, Flask
  • Генерация паролей: Модули random и string из стандартной библиотеки Python.
  • Фронтенд: HTML, CSS, JavaScript (использует Fetch API для взаимодействия с бэкендом).

Что нового:

  1. Создан password_generator.py (бэкенд) с основной логикой генерации паролей.

  2. Создан app.py с использованием Flask, который будет управлять всем:

    • Отдавать index.html пользователю.
    • Принимать запросы от index.html (длина, типы символов).
    • Вызывать функции из password_generator.py.
    • Возвращать сгенерированный пароль обратно в index.html.

    Перед запуском: Убедитесь, что у вас установлен Flask. Если нет, выполните: pip install Flask

  3. Обновлен index.html (фронтенд). Изменен JavaScript так, чтобы он отправлял запрос на наш Flask-сервер.

    • Добавлено поле errorMessageDiv для отображения ошибок от сервера.
    • Функция generatePassword теперь использует fetch API для отправки POST-запроса на /generate_password.
    • Данные отправляются в формате JSON.
    • Обрабатывается ответ сервера: если есть ошибка, она показывается пользователю, иначе — отображается пароль.
    • Немного улучшен CSS для лучшего отображения настроек.

Как запустить:

  1. Скачайте и сохраните архив с программой и запустите файл index.html.
  2. Теперь вы можете открыть этот файл в браузере, чтобы увидеть работающий генератор паролей.

Важные замечания для app.py:

Папка templates: Flask по умолчанию ищет HTML-файлы в подпапке templates. Вам нужно будет создать эту папку и переместить туда ваш index.html. Скрипт app.py пытается сделать это автоматически при первом запуске, но лучше сделать вручную, чтобы избежать ошибок. pip install Flask : Убедитесь, что Flask установлен. version: Наш password_generator.py должен содержать переменную version = "1.1.0".

  1. Сохраните password_generator.py и app.py в одной директории.
  2. Создайте папку templates в этой же директории.
  3. Переместите ваш index.html внутрь папки templates.
  4. Откройте терминал в этой директории.
  5. Запустите сервер: python app.py
  6. Откройте браузер и перейдите по адресу http://127.0.0.1:5000/ (или http://localhost:5000/). Теперь ваш index.html должен работать интерактивно, общаясь с Python-скриптом через Flask!

1. Структура папок:

Убедитесь, что ваши файлы расположены следующим образом:

ваш_проект/
├── password_generator.py
├── app.py
└── templates/
    └── index.html
  • ваш_проект/ - это корневая директория вашего проекта.
  • password_generator.py и app.py лежат прямо в корне.
  • Создайте папку templates в корне.
  • Переместите ваш index.html внутрь этой папки templates/.
  1. Установка Flask (если еще не установлено):

Откройте терминал (командную строку) и выполните команду:

pip install Flask

Если у вас установлен Python, то pip должен быть доступен. Если возникнут ошибки, возможно, Python или pip установлены некорректно, или пути к ним не прописаны в переменной среды PATH.

  1. Запуск сервера:
  • Откройте терминал:

    • Windows: Найдите "Командная строка" (Command Prompt) или "PowerShell".
    • macOS/Linux: Откройте стандартное приложение "Терминал".
  • Перейдите в директорию вашего проекта: Используйте команду cd (change directory). Например, если ваш проект находится на рабочем столе в папке password-generator:

    cd Desktop/password-generator

    (Путь может отличаться в зависимости от того, где вы сохранили проект).

  • Запустите Python-скрипт app.py: Убедитесь, что вы находитесь в той же директории, где лежат app.py и папка templates. Теперь введите команду:

    python app.py

    • Важно: Если у вас на компьютере установлено несколько версий Python, и по умолчанию запускается не та, к которой привязан pip, то может потребоваться использовать python3 app.py или py app.py (на Windows). Проще всего использовать python или python3, если вы уверены, что они указывают на нужную версию.

Что должно произойти после запуска:

Вы увидите сообщения в терминале, похожие на эти:

  • Serving Flask app 'app' (lazy loading)
  • Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
  • Debug mode: on
  • Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
  • Running on http://127.0.0.1:5000/

Файл index.html перемещен в папку 'templates'.

  1. Открытие в браузере:
  • Возьмите одну из ссылок, которые появились в терминале, обычно это: http://127.0.0.1:5000/ (или http://localhost:5000/)
  • Откройте ваш веб-браузер (Chrome, Firefox, Safari, Edge и т.д.).
  • Вставьте эту ссылку в адресную строку браузера и нажмите Enter.

Вы должны увидеть ваш генератор паролей, который теперь будет работать, обращаясь к Python-бэкенду!

Если что-то пошло не так:

  • "ModuleNotFoundError: No module named 'Flask'": Значит, Flask не установлен. Попробуйте pip install Flask еще раз.
  • "ModuleNotFoundError: No module named 'password_generator'": Значит, app.py не может найти ваш файл password_generator.py. Убедитесь, что они лежат в одной директории, и вы запускаете app.py из этой директории.
  • "FileNotFoundError: [Errno 2] No such file or directory: 'templates/index.html'": Значит, index.html не находится в папке templates/. Проверьте структуру папок.
  • Ошибки в браузере: Если браузер выдает ошибки, проверьте консоль ошибок в браузере (обычно открывается через F12) и сообщения в терминале, где запущен app.py. Там может быть более подробная информация.

Пример использования:

Использует строчные буквы. Введите длину пароля (от 8 и более). Использовать цифры? Использовать ЗАГЛАВНЫЕ буквы? Использовать спецсимволы?

Варианты паролей: Вариант пароля номер 1: OMm7TTc$BO Вариант пароля номер 2: 84WbkB@N8g Пароли сгенерированы успешно!