Является ли Brython полностью клиентской стороной?

У меня есть часть кода, написанная на Python. Я хотел бы поместить этот код на веб-страницу. Brython кажется самым простым способом склеить две вещи вместе, но у меня нет сервера, который может фактически запускать код на стороне сервера.

Требуется ли Brython код на стороне сервера, или я могу разместить страницу, используя ее по дешевой (скажем) Dropbox?

Ответы

Ответ 1

Сам Brython, кажется, полностью клиентский, но достаточно ли этого будет от кода, который вы написали. Это не полный интерпретатор Python и не имеет библиотек. Возможно, вы захотите, чтобы бэкэнд поддерживал его или использовал другое клиентское решение, как это предлагается в комментариях.

Учитывая, как мало реальных веб-хостеров поддерживают Python, я думаю, что очень маловероятно, что Dropbox подходит для этого, если вам также нужна обработка на сервере.

Ответ 2

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

Некоторые возможности:

  • выполняется локально, без сервера. Вы открываете html файл в своем веб-браузере
  • работает на бесплатном веб-сайте без доступа к серверу, например в блоге. Я использую блоггер, например, для демонстрационных материалов в своем блоге, например, интерактивный макет
  • выполняется на хосте, где вы можете делать серверную часть. Это позволяет вам сделать Ajax (тот же домен - проверить пример ajax в галерее) и импортировать библиотеки, которые хранятся на сервере
  • интегрируйте brython с вашим любимым веб-фреймворком и шаблоном.

Чтобы быть понятным, вам не нужен python на вашем сервере. И если вы не можете ссылаться на файл brython.js, вы можете включить javascript на свою веб-страницу.

Что касается поддержки языка, он поддерживает все основы и поддерживает классы, списки и некоторые менее очевидные вещи, такие как eval, dis и т.д. Существует стандартный stdout и stderr по умолчанию для консоли веб-браузера, но могут быть перенаправлен (см. консоль на сайте brython для примера). Он интегрируется с библиотеками javascript через JSObject. Он имеет хорошую поддержку HTML5.

Документация на английском и испанском языках немного отстает от французской документации, поскольку они переведены с оригинала на французский язык. В ближайшие дни они должны быть синхронизированы. Тем не менее, если вы посмотрите на console и gallery, это дает вам представление о том, что возможно.

Есть списки рассылки, связанные на сайте brython, чтобы обеспечить поддержку, если вы застряли.

Я бы предоставил больше примеров и ссылок, но я новичок, поэтому я ограничен ссылками на гиперссылки.

Ответ 3

Brython не всегда работает с кодом python, я узнал.

Что-то, о чем я думаю, нужно уточнить, так это то, что, хотя вы можете запускать brython в очень ограниченной емкости, обратившись к локальным файлам (из-за требования AJAX), вы не можете импортировать библиотеки - даже самые простые (например, html, время). Вам действительно нужен базовый веб-сервер для запуска brython.

Я нашел, что это хорошо для базовых скриптов, поскольку мой питон лучше, чем мой JS. Однако, похоже, он работает с более сложным синтаксисом.

Ответ 4

Да, brython полностью близок. Да, вы можете использовать его с Dropbox. Что вам нужно сделать, это скопировать общедоступную ссылку на файл brython.js и поместить ее в свой тег заголовка файла html, где текст по умолчанию:

<script src=...

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

<html>

    <head>
        <script src="Public Dropbox Link To The brython.js File"></script>
    </head>

    <body onload="brython()">

        <script type="text/python">
        from browser import document, alert

        def echo(event):
            alert(document["zone"].value)

        document['mybutton'].bind('click', echo)
        </script>

        <input id="zone"><button id="mybutton">click !</button>

    </body>

</html>

И это пример, который они дают на своей странице. note Примечание Вам не нужно иметь html файл в вашем Dropbox, он может быть где угодно с доступом в Интернет.