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

[Dash + Flask] Как развернуть приложение Python Dash на Pythonanyewhere.com

https://youtu.be/yRw95qVYKK8 Вот пошаговый подход к развертыванию вашего приложения Dash на Pythonanyewhere.com, используя колбу и PIP: создать учетную запись на Pythonanyewhere.com. Создайте приложение Flask. Создайте приложение Dash. Скопируйте приложение Dash в приложение Flask. Подключите Flask Server с приложением Dash. Измените файл конфигурации WSGI. Установите Dash с PiP в вашей раковине Bash … [Dash + Flask] Как развернуть приложение Python Dash на Pythonanyewhere.com Подробнее »

Автор оригинала: Chris.

Вот пошаговый подход, как развернуть приложение Dash на Pythonanyewhere.com Использование колбы и пипсов:

  • Создайте учетную запись на Pythonanyewhere.com.
  • Создать Колбу заявление.
  • Создать Dash заявление.
  • Скопируйте приложение Dash в приложение Flask.
  • Подключите Flask Server с приложением Dash.
  • Изменить Файл конфигурации wsgi Отказ
  • Установите Dash с пипс В вашей раковине Bash (например, PIP3.7 Установить Dash --user )
  • Обновите свой сервер Flask.

Как интегрировать dash с вашим существующим приложением

У вас есть существующее приложение Non-Dash, и вы хотите интегрировать приборную панель внутри нее?

Отказ от ответственности : Если вы спросите меня, это не лучшая идея. Разве вы не можете держать свой сайт чистым и простым? Одна страница для одного намерения. Вам действительно нужно интегрировать полноценное приложение Dash в рамках этого конкретного веб-приложения? Перед ответом: Да!, Пожалуйста, рассмотрите следующее: вы всегда можете встроить интерактивные графики с помощью JavaScript.

Например, отличная альтернатива будет Canvajs . Я не связан с этими парнями, но они создали отличные рамки, которые можно использовать на любом веб-сайте. Черт возьми, вы могли бы даже использовать Сюжер Графики на вашем сайте для визуализации данных. (Это создатели тире.)

Причина, по которой я не защищаю приложение Tash в вашем существующем (HTML/CSS/JS) приложении, заключается в том, что он утомительно, погрешность, и он замедляет ваш сайт.

Я дам вам три способа, заказываемые затруднениями:

1 – Поместите ссылки разумно

Поверьте, или нет, я придумал эту стратегию Genius все сам. Вместо того, чтобы интегрировать ваше приложение с помощью Dash, вы просто ссылаетесь на ваше отдельное (независимое) приложение Dash, чтобы оно выглядело как два сайта (ваш оригинал и приложение Dash) работают вместе и плотно интегрированы. Однако они бегут самостоятельно, и вы можете избежать всей борьбы и продолжать жить простой жизнью.

2 – Используйте iframes

На Официальный сайт тире С этой проблеме они рекомендуют использовать > IFrame - это HTML-элемент, который позволяет вам встроить любой веб-сайт Y на веб-сайте X. Это как окно на другой веб-сайт. На странице X вы можете определить размер окна и окружающую среду вокруг окна. Но вы можете контролировать немного больше.

Хотя это может работать теоретически, он часто замедляет веб-сайты и вызывает проблемы безопасности. Некоторые веб-браузеры Блокируйте использование iframes В целом. Таким образом, может случиться, что пользователи даже не видят ваше приложение Great Dash!

Вы все еще хотите попробовать это с Iframes? Хорошо, так иди на это:

  • Включить Элемент на вашем HTML-сайте.
  • Точка SRC атрибут к адресу вашего приложения Dash.
  • Поместите свое приложение TART IFRAME на свой веб-сайт, определяющие желаемые размеры:

Вот как такое приложение Thred Iframe Wash выглядит на веб-сайте Finxter:

Это не выглядит красиво, не так ли?

Использование существующего приложения Flask

Да, все программисты там слюнится. Это просто красиво, чтобы втаконно интегрировать два приложения, не так ли? Ну, если вы так думаете. Я думаю, это большой беспорядок, и вы проклинаете себя за это. Однако, если вы должны сделать это, вот как вы можете сделать это (на основе это Ресурс и Документы ):

Доступ к приложению Flask через app.server и назначить его переменной (например, сервер ).

import dash
app = dash.Dash(__name__)
server = app.server

В качестве альтернативы пропустите экземпляр приложения Flask в Dash при создании приложения в бросаться. Бросаться(...) рутина инициализации.

import flask
server = flask.Flask(__name__)
app = dash.Dash(__name__, server=server)

Что вы достигли? Сервер Переменная теперь содержит экземпляр колбы. Это позволяет добавлять любой маршрут и пользовательскую функциональность, как это:

@server.route('/hello')
def hello():
    return 'Hello, World!'

Вы можете увидеть такой пример в указанном коде здесь :

from flask import Flask
from dash import Dash
import dash_core_components as dcc
import dash_html_components as html


server = Flask(__name__)
app = dash.Dash(
    __name__,
    server=server,
    url_base_pathname='/dash'
)

app.layout = html.Div(id='dash-container')

@server.route("/dash")
def my_dash_app():
    return app.index()

Но авторы кода разделяют тот же отказ от ответственности: это отстой! Вы теряете много интегрированной функциональности колбы при работе со внутренней части таблетки.

Может быть, вернуться к методу 1? Лучший способ состоит в том, чтобы использовать тире изнутри колбу, а не используя колбу изнутри приборной панели. Вы можете посмотреть, как это работает здесь (Прокрутите вниз к заголовку «Объединение одного или нескольких приложений Dash с существующими приложениями WSGI»).

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/dash-flask/”