Рубрики
Без рубрики

Unsplash API с Python

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, будь … Tagged с начинающими, Python, 100daysofpython.

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, обязательно Посетите мой блог и подписаться на мою рассылку. Подпишись на меня в Твиттере .

Это 2 дня #100daysOfpython Challenge.

В сегодняшнем утреннем посте я предпочитаю сдвинуть то, как я генерирую свои изображения в блоге. Для этого я буду использовать Неофициальный Python Unsplash API Сальвовентуру.

Этот пост не будет охватывать всю смену, но он рассмотрит, как я возьму исходное изображение из Unsplash.

Предварительные условия

  1. Зарегистрированное приложение с САЙТ ДЕСПЛАТЫ ДЕЛАЙТЕ ДЕЛЕВО Анкет
  2. Знакомство с Pipenv – см. мой пост Для минимума вам понадобится.
  3. Настройка среды с 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 из запуска.

Мы создадим четыре ячейки для обработки четырех частей этого мини -проекта:

  1. Загрузите переменные среды.
  2. Используйте API UNSPLASH, чтобы захватить исходное изображение.
  3. Сохраните изображение в родительском каталоге.
  4. Отобразить загруженное изображение в ноутбуке с помощью подушки.

Загрузить переменные среды

Предполагая, что наша записная книжка в 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 Пакет, чтобы принести случайное изображение на основе ключевого слова и сохранить его на диск.

В ближайшие дни я буду писать дополнительные сообщения о том, как мы можем составить несколько изображений вместе, чтобы создать более сложный эффект вместе с текстом.

Ресурсы и дальнейшее чтение

  1. САЙТ ДЕСПЛАТЫ ДЕЛАЙТЕ ДЕЛЕВО Анкет
  2. ABCS Pipenv Для минимума вам понадобится.
  3. Привет, jupyterlab Анкет
  4. Salvoventura/Pyunsplash

Первоначально опубликовано на моем блог . Чтобы увидеть новые сообщения без промедления, прочитайте сообщения там и подпишитесь на мою рассылку.

Оригинал: “https://dev.to/okeeffed/unsplash-api-with-python-3p9p”