Python既可以作为web服务器,也可以开发web应用,在处理HTML和javascript的同时,有时常常需要在javascript和python之间互相传递参数,javascript依赖于python同数据库和云服务等之间的通信,但python在取得相关的数据后又需要javascript来渲染页面。这两者一般是如何触发的呢?
以Django中数据库的数据加载为例,在html页面加载完成后,一般可以通过$(document).ready(function () { post请求代码}); 来发起一次post请求,包括了回调函数。
// Ready method. $(document).ready(function() { // Get database datas and place them in html $.post( "{% url 'get_data' %}", getDataCallback );
在上面的例子中,get_data的视图python函数中,由python来完成数据库数据的读取,并JsonResponse还回该对象,在getDataCallback这个Javascript回调函数中处理这个返回值,把它铺设到相关的显示单元中。
同样地,如果是需要在视图函数中由websocket等方式从云服务器中获取数据,也是一样的效果,在post请求的视图函数中处理获取数据事宜,而在javascript的回调函数中处理数据组装与铺设。这种方法简单又高效,并且容易理解。