И Python, и React / Redux в браузере?(WAS: Transcrypt and React / Redux) - PullRequest
0 голосов
/ 16 декабря 2018

Мне нравится python для быстрых прототипов (иногда) довольно сложных систем.С другой стороны, мне также нравятся гибкость и быстрая разработка «современных» веб-фреймворков (реагирующих, угловых) для пользовательского интерфейса. Поэтому я пытаюсь найти способ использовать оба вместе, исключительно для собственных целей создания прототипов.

Например, я играл с React и Transcrypt (python скомпилирован в javascript), и он, кажется, работает довольно хорошо.

Что я не могу найти, так это пример работы / рекомендуемый способ каквключите Redux / Flux или иным образом подключите React к глобальному состоянию (и, в конечном счете, к модели данных Python).

Кто-нибудь пробовал это?Любая хорошая статья / пример для рекомендации?

РЕДАКТИРОВАТЬ: Чтобы уточнить, я пытаюсь использовать оба (Python и современный веб-интерфейс) в браузере, чтобы достичь двух вещей:

  1. Закодируйте ВСЕ логику в python (что, по крайней мере, для меня чрезвычайно быстро как для кодирования, так и для рефакторинга - поэтому идеально подходит для создания прототипов)

  2. Используйте современный пользовательский интерфейс, который очень интерактивен, а такжеочень быстро создавать прототипы (шаблоны, привязка данных, быстрые пользовательские компоненты и т. д.)

1 Ответ

0 голосов
/ 20 декабря 2018

Из того, что вы описали, вы, вероятно, ищете способ Реагировать на стороне сервера рендеринга (SSR) .Для этого есть пакет pip: https://github.com/markfinger/python-react

С другой стороны, учитывая, что вы используете Transcrypt (что, пожалуй, не лучшая идея), и это только для прототипирования, вы можете просто передать свои данныек коду, который проходит через Transcrypt.На самом деле у них есть пример на сайте: https://www.transcrypt.org/examples#react_demo

Но вам, вероятно, понадобится custom JSONEncoder для этого.Рассмотрим код ниже:

Hello = React.createClass({
    'getInitialState': lambda: ModelJsonEncoder.encode(CustomModel),
    ...
})

# Render the component in a 'container' div
element = React.createElement(Hello)
render(element, 'container')

Надеюсь, это поможет.

...