Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, обязательно Посетите мой блог и подписаться на мою рассылку. Подпишись на меня в Твиттере .
Это 2 дня #100daysOfpython Challenge.
В сегодняшнем утреннем посте я предпочитаю сдвинуть то, как я генерирую свои изображения в блоге. Для этого я буду использовать Неофициальный Python Unsplash API Сальвовентуру.
Этот пост не будет охватывать всю смену, но он рассмотрит, как я возьму исходное изображение из Unsplash.
Предварительные условия
- Зарегистрированное приложение с САЙТ ДЕСПЛАТЫ ДЕЛАЙТЕ ДЕЛЕВО Анкет
- Знакомство с Pipenv – см. мой пост Для минимума вам понадобится.
- Настройка среды с Jupyterlab Анкет
Начиная
Давайте создадим Pyunsplash
Справочник и установите API UNSPLASH вместе с другими необходимыми пакетами для установки и загрузки изображения.
# Make the `pyunsplash` directory $ mkdir pyunsplash $ cd pyunsplash # File for env file - be sure to Git ignore this file $ touch .env # Init the virtual environment $ pipenv --three $ pipenv install requests pillow pyunsplash python-dotenv $ pipenv install --dev jupyterlab # Startup the notebook server $ pipenv run jupyter-lab # ... Server is now running on http://localhost:8888/lab
Сервер теперь будет запущен и работает.
Вам также нужно будет получить ключ доступа из вашего приложения Unsplash с портала разработчика. Как только у вас есть, обновите свой .env
Файл как так:
UNSPLASH_ACCESS_KEY=
Он будет использован для питания pyunsplash
упаковка.
Создание ноутбука
Однажды на http://localhost: 8888/lab , выберите, чтобы создать новую ноутбук Python 3 из запуска.
Мы создадим четыре ячейки для обработки четырех частей этого мини -проекта:
- Загрузите переменные среды.
- Используйте API UNSPLASH, чтобы захватить исходное изображение.
- Сохраните изображение в родительском каталоге.
- Отобразить загруженное изображение в ноутбуке с помощью подушки.
Загрузить переменные среды
Предполагая, что наша записная книжка в docs/unsplash_api.ipynb
Файл, мы создадим новую ячейку и вставшим следующий код:
# Load in the required dotenv vars import os from os.path import join, dirname, abspath from dotenv import load_dotenv dotenv_path = join(dirname(abspath("__file__")), '../.env') load_dotenv(dotenv_path) UNSPLASH_ACCESS_KEY = os.environ.get("UNSPLASH_ACCESS_KEY")
Запуск этой ячейки будет читать .env
Файл в родительский каталог и загрузите Unsplash_access_key
ценность.
Привлечение ссылки для случайной фотографии
Мы можем создать новую ячейку, которая загрузит pyunsplash
Упакуйте и возьмите случайную фотографию от Unsplash.
from pyunsplash import PyUnsplash # instantiate PyUnsplash object pu = PyUnsplash(api_key=UNSPLASH_ACCESS_KEY) photos = pu.photos(type_='random', count=1, featured=True, query="splash") [photo] = photos.entries print(photo.id, photo.link_download)
Это распечатает идентификатор фотографии вместе со значением ссылки для загрузки.
Загрузите изображение в родительскую папку
Мы можем использовать Запросы
Пакет для загрузки изображения и написать его в файл.
import requests response = requests.get(photo.link_download, allow_redirects=True) open('../unsplash_temp.png', 'wb').write(response.content)
Наконец, мы можем показать, как выглядит это изображение:
from PIL import Image display(Image.open('../unsplash_temp.png'))
Это фото – фотография, которую я использую для этого сообщения в блоге.
Резюме
Сегодняшний пост продемонстрировал, как использовать pyunsplash
Пакет, чтобы принести случайное изображение на основе ключевого слова и сохранить его на диск.
В ближайшие дни я буду писать дополнительные сообщения о том, как мы можем составить несколько изображений вместе, чтобы создать более сложный эффект вместе с текстом.
Ресурсы и дальнейшее чтение
- САЙТ ДЕСПЛАТЫ ДЕЛАЙТЕ ДЕЛЕВО Анкет
- ABCS Pipenv Для минимума вам понадобится.
- Привет, jupyterlab Анкет
- Salvoventura/Pyunsplash
Первоначально опубликовано на моем блог . Чтобы увидеть новые сообщения без промедления, прочитайте сообщения там и подпишитесь на мою рассылку.
Оригинал: “https://dev.to/okeeffed/unsplash-api-with-python-3p9p”