最近在做一个打印机项目。由于对前后端数据通信不太了解。就去网上搜了一下。感觉都不太容易懂。下面我就把自己掌握的方法进行简单的介绍。有错误希望大神指出,谢谢!
目的:希望在界面上某一个框能动态显示Python后台处理的数据(Python CGI编程)
做法如下:
第一步:比如说你的界面有一个输入框代码如下
<input id="num" name="num" style="IME-MODE: disabled; WIDTH: 25%;
HEIGHT: 90%" maxlength="5" size="14" name="amount" type="text" value="1"/>
这个用来显示num的数量。而这个num的值是动态的,也就是框里面的数值是我们Python后台处理之后的值。
第二步:在页面加载之前先加载js代码(也就是body代码之前)代码如下:
<script type="text/javascript">
window.onload=function (){//页面加载
var req = new XMLHttpRequest();
req.open("GET","./getmfpnum.py",false);
req.send(null);
res = req.responseText;
res_data = eval("("+ res + ")");
Fenshu = res_data.fenshu;
document.getElementById("num").value=Fenshu;
}
这里的第四行就是我们的Python程序。在getmfpnum.py程序中返回一个JSON格式的数值。
js代码接收以后保存在res中。然后用eval去处理这个JSON数据,处理之后就可以提取出
相应的键值了。
最后一行代码就是把后台传过来数值处理之后赋值给HTML5代码里面的num
这就就可以动态显示Python处理的数值了。(多个动态显示原理相同)
第三步:编写Python代码把处理好的数据传给js
程序名 : getmfpnum.py
代码如下:
import json
num_value = get_number()
json_num = {'num_value':num_value}
json_num_str = json.dumps(json_num)
print("Content-type: text/html\n")
print(json_num_str)
代码解析:第一行,导入模块
第二行 得到一个参数 num_value
第三行 创建一个字典,把得到的值传进去。
第四行 把字典转化成str格式
第四行,五行。把处理好的str发给前台。
通过上面的步骤就可以动态显示界面数值了。前提是安装好CGI需要的web服务器。没有安装web服务器的可以自行安装。百度即可。CGI编程建议安装Apache
以上纯属自己手打。按照自己理解写的,本人菜鸟一个,希望各位大神多多指点。
如有雷同纯属巧合。谢谢