🔄 Конвертирование HTML в PDF
|
Существует несколько готовых инструментов для конвертирования HTML в PDF с помощью Python, но если вы любите нетривиальные решения, то попробуйте оригинальный способ, описанный в этой статье. Автор использует для конвертации безголовый Chrome (т. е. вызывает браузер без GUI). Для кода, описанного в туториале, необходимо наличие пути к Chome в PATH, а PDF сохраняется со случайным именем во временных файлах. В этой модифицированной версии: - Используется абсолютный путь к chrome.exe.
- PDF-файл сохраняется в той же директории, что и исходный HTML.
- Название PDF-файла берется у исходного файла.
|
🆓 Бесплатный курс по анализу данных |
Платформа freeCodeCamp выпустила новый практический курс для начинающих аналитиков данных. В курсе рассматриваются: - Анализ данных.
- Визуализация данных.
- Методы обработки визуальной информации (с использованием реальных астрономических изображений).
Кому подходит этот курс: - Новичкам, желающим освоить анализ и визуализацию на реальных данных.
- Студентам и исследователям в области астрономии и астрофизики.
|
🎓 Основы Python за 100 дней |
Если одновременно с Python вы изучаете английский – обратите внимание на бесплатный курс 100 days of Python на Replit. Сложность заданий в этом курсе нарастает постепенно – на первом уроке вы будете изучать вывод с помощью print(), а на последнем – напишите скрипт, который будет скрапить информацию о ценах и отправлять результаты на ваш email по расписанию. В курсе рассматриваются все нужные темы – от использования API и основ веб-разработки до создания GUI-интерфейсов и работы с базами данных. На платформе Replit работает собственный генератор кода, Ghostwriter, и в нескольких уроках курса рассматриваются способы его эффективного использования. |
👨👨👧 Самый простой способ добавить Google-авторизацию в Django |
Туториалы по добавлению авторизации в приложение на Django обычно слишком усложняют задачу. Автор этой статьи показывает, что на самом деле авторизацию можно сделать гораздо проще. Процесс выглядит так: - Настраиваем проект в Google Cloud Platform и даем согласие на доступ к данным и OAuth client ID для идентификации приложения. Это позволит Google перенаправлять пользователей на приложение после входа в их аккаунт.
- Добавляем кнопку входа через Google на страницу входа с помощью специального скрипта. При нажатии на эту кнопку пользователь будет перенаправлен на страницу входа в Google.
- После успешного входа в Google, скрипт перенаправит пользователя обратно в приложение, передав токен для аутентификации.
- Этот токен проходит валидацию на бэкенде, в результате чего приложение получает данные пользователя из Google (email, имя и т. д.).
- Данные сохраняются в сессии Django, после чего пользователь залогинен в приложение.
В статье также упоминаются нюансы настройки этой системы авторизации в продакшене: - Нужно добавить URL продакшен-версии сайта в разрешенные источники JavaScript и разрешенные URI для редиректа в настройках проекта в Google Cloud.
- Обновить файл .env с данными Client ID и Client Secret для продакшен-окружения.
- Изменить в шаблоне ссылку на localhost на URL продакшен-версии для корректного редиректа после авторизации. Можно использовать переменные окружения Django, чтобы автоматически подставлялся нужный URL.
- Также в продакшене нужно будет реализовать сохранение данных пользователя в БД (а не просто в сессию), и позаботиться о безопасной конфигурации Django.
|
📙 Форматированный вывод многоуровневых словарей
|
Оценить содержимое и структуру объемного вложенного словаря непросто: |
data = {"пользователи": {"user1": {"имя": "Евгений Онегин", "возраст": 30, "опыт работы": [{"компания": "X Corp", "должность": "бэкенд-разработчик"}, {"компания": "Y LLC", "должность": "аналитик данных"}]}, "user2": {"имя": "Татьяна Ларина", "возраст": 25, "опыт работы": [{"компания": "Z & Co", "должность": "фронтенд-разработчик"}], "образование": {"вуз": "МГУ", "специальность": "программист"}}}, "компании": {"X Corp": {"сфера": "software", "год основания": 2000, "продукты": ["X editor", "X platform"]}, "Y LLC": {"сфера": "computer hardware", "год основания": 1982}}} |
Но есть 3 несложных способа привести такой словарь в удобочитаемый вид. |
Вывод с json.dumps() – просто и вполне наглядно | Вывод с pprint() – самый простой, но не самый эффективный метод |
Кастомная рекурсивная функция – более сложный, зато самый эффективный метод |
Python располагает собственным встроенным сервером – чтобы его запустить в определенной директории, нужно выбрать опцию «Открыть окно команд» из контекстного меню и выполнить в cmd команду python -m http.server. Популярные веб-фреймворки Django и Flask тоже используют собственные серверы на этапе разработки. Однако для продакшена нужны более серьезные решения, – обычно это связка nginx и Gunicorn, которую не так-то просто настроить. Более простой способ настройки предлагает Granian – сервер для Python-приложений, написанный на супербыстром Rust. Granian поддерживает вебсокеты, приложения с интерфейсами ASGI/3, RSGI и WSGI, обеспечивает устойчивую производительность и позволяет обойтись без сложной связки Gunicorn, Uvicorn и HTTP-инструментов. На этом все, до встречи через неделю! |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|