Is Brython entirely client-side?

拥有回忆 提交于 2019-12-03 08:50:55

问题


I have a piece of code written in Python. I would like to put that code in a webpage. Brython seems like the simplest way to glue the two things together, but I don't have a server that can actually run code on the server side.

Does Brython require server-side code, or can I host a page using it on the cheap with (say) Dropbox?


回答1:


Brython itself seems to be completely client side, but whether that will be enough really depends on the code you wrote. It is not a full blown Python interpreter and does not have the libraries. You might want a backend to support it or use another client side solution as suggested in the comments.

Given how few real web hosters support Python, I think it is very unlikely that Dropbox would be suitable for this, in case you do need processing on the server as well.




回答2:


Brython is pretty new, and as such is changing rapidly. But, you can use it pretty much anywhere without server side code.

Some possibilities:

  • run locally, with no server whatsoever. You open the html file in your web browser
  • run on a free web site, without server side access, such as a blog. I use blogger, for example, to demo stuff on my blog, like this interactive breadboard
  • run on a host where you can do stuff server side. This allows you to do Ajax (same domain - check the ajax example in the gallery), and to import libraries that are stored on the server
  • integrate brython with your favorite web framework and templating engine

Just to be clear, you do not need python on your server. And if you cant link to the brython.js file, you can include the javascript in your web page.

As for the language support, it does support all the basics and does support classes, list comprehensions, and some less obvious stuff like eval, dis etc. There is a stdout and stderr that default to the web browser console, but can be redirected ( see the console on the brython site for an example of that ). It integrates fine with javascript libraries through JSObject. It has nice HTML5 support.

The english and spanish documentation are lagging a little behind the french documentation since they are translated from the original in french. They should be back in sync in the next few days. Still, if you look at the console and gallery, it gives you a taste of what is possible.

There are mailing lists linked on the brython site to provide support if you get stuck.

I would have provided more examples and links, but I'm new, so I'm limited on the hyperlinks.




回答3:


Brython doesn't always work with python code, I've learned.

Something I think needs to be clarified is that while you can run brython in a very limited capacity by accessing the files locally, (because of the AJAX requirement) you can't import libraries - not even the most basic (e.g., html, time). You really need a basic web server in order to run brython.

I've found it's good for basic scripts, since my python is better than my JS. It seems to break with more complicated syntax, though.




回答4:


Yes, brython is entirely cliant-side. Yes, you can use it with Dropbox. What you need to do is copy a public link to the brython.js file and place it in your html file's head tag, where the default text is:

<script src=...

place the public link in the quotes and close the script tag. So the code would look like:

<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>

And this is the example they give on their page. note You don't need to have the html file on your dropbox, it can be anywhere with internet access.



来源:https://stackoverflow.com/questions/14418774/is-brython-entirely-client-side

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!