带有JS前端的Python后端

时间:2016-12-28 12:55:03

标签: javascript jquery python bottle

我正在创建一个支持Python的Web框架,旨在尽可能少地使用javascript。需要制作像uilang这样的轻量级内容来将事件传递给我的Python代码。我想应该是jQuery解决方案以某种方式ping一种观察者对象(?)。

我发现了一些创建纯Python界面的努力,比如Remi,但仍然不知道如何在我的代码中重新实现它。

让我说我做了一个类似的课程:

class WebView():
    def __init__(self, template, **callbacks):
        """
        Callbacks are dict, {'object': callback}
        """
        self.template = template
        self.customJS = None
        for obj, call in callbacks:
            self.setCallback(obj, call)

    def __call__():
        """
        Here I return template
        Assume {{customJS}} record in template, to be simple
        """
        return bottle.template(self.template, customJS = self.customJS)

    def setCallback(self, obj, call):
        """
        Build custom js to insert 
        """
        self.customJS += ('<script ....%s ... %s' % (obj, call))

那么,我怎样才能让JS传递一个事件,比如按回按钮回到我的回调?

我理解这个问题可能处于过于宽泛的边缘,但我只是想尽可能地描述,因为我根本不认识JS。

2 个答案:

答案 0 :(得分:1)

你不需要为python web框架使用javascript。没有JS的单行,你可以很好地使用flask或django来提供页面。

这些页面非常静态,有一些形式,但可以很好地工作。

现在,如果你想拥有更多动态内容和交互,你可能需要JS,并使用XMLHttpRequests在事件上异步调用你的python后端。但为了做到这一点,你应该从学习JS开始。

答案 1 :(得分:0)

你也可以用websockets来做,但我不认为这是最好的方式。您可以在python端使用websocket-python库,在网站上,您只需在每次按钮点击回调时发送websocket消息。