Bokeh – мощная библиотека Python, используемая для создания интерактивных визуализаций и приложений с данными. Heroku, с другой стороны, — это популярная облачная платформа, которая позволяет разработчикам легко развертывать и масштабировать свои приложения. В этой статье мы обсудим различные методы развертывания приложений Bokeh на Heroku, а также приведем примеры кода для каждого метода.
Метод 1. Развертывание приложения Bokeh в качестве приложения Flask
Первый метод включает в себя встраивание приложения Bokeh в приложение Flask и его развертывание на Heroku. Выполните следующие действия:
Шаг 1. Создайте новое приложение Flask.
from flask import Flask, render_template
from bokeh.embed import server_document
app = Flask(__name__)
@app.route('/')
def index():
script = server_document('https://your-bokeh-app.herokuapp.com/bokeh-app')
return render_template('index.html', script=script)
if __name__ == '__main__':
app.run()
Шаг 2. Создайте файл шаблона index.html, который будет отображать приложение Bokeh.
<!DOCTYPE html>
<html>
<head>
<title>Bokeh App on Heroku</title>
{{ script|safe }}
</head>
<body>
<!-- Add any additional HTML content here -->
</body>
</html>
Шаг 3. Разверните приложение Flask на Heroku.
Метод 2. Использование сервера Bokeh с Heroku
Второй метод предполагает развертывание приложения Bokeh как автономного серверного приложения Bokeh на Heroku. Выполните следующие действия:
Шаг 1. Создайте файл main.pyдля приложения Bokeh.
from bokeh.plotting import figure
from bokeh.server.server import Server
from tornado.ioloop import IOLoop
def modify_doc(doc):
# Create your Bokeh app code here
p = figure()
# Add plots and interactions
server = Server({'/bokeh-app': modify_doc}, io_loop=IOLoop.current(), allow_websocket_origin=['your-heroku-app.herokuapp.com'])
server.start()
if __name__ == '__main__':
server.io_loop.start()
Шаг 2. Создайте Procfile, чтобы указать команду для запуска сервера Bokeh.
web: bokeh serve --port=$PORT --show /path/to/main.py
Шаг 3. Разверните приложение Bokeh на Heroku с помощью Git.
Метод 3: использование внедрения Bokeh с Heroku
Третий метод включает в себя встраивание приложения Bokeh в виде статического HTML-файла и его развертывание в Heroku. Выполните следующие действия:
Шаг 1. Создайте приложение Bokeh как отдельный HTML-файл.
from bokeh.plotting import figure
from bokeh.resources import CDN
from bokeh.embed import file_html
p = figure()
# Add plots and interactions
html = file_html(p, CDN, "My Bokeh App")
with open('bokeh-app.html', 'w') as f:
f.write(html)
Шаг 2. Создайте простое приложение Flask для рендеринга приложения Bokeh.
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('bokeh-app.html')
if __name__ == '__main__':
app.run()
Шаг 3. Разверните приложение Flask на Heroku.
В этой статье мы рассмотрели три различных метода развертывания приложений Bokeh на Heroku. Мы обсудили развертывание приложения Bokeh как приложения Flask с использованием сервера Bokeh и встраивание приложения в виде статического HTML-файла. Каждый метод имеет свои преимущества и может быть выбран в зависимости от конкретных требований вашего проекта. Следуя предоставленным примерам кода, вы сможете легко развернуть свои приложения Bokeh на Heroku и использовать возможности интерактивной визуализации в своих приложениях.