今天臧童鞋在Q上说要寻求帮助,我问了一下他,原来他同学有份作业亟待完成,我看了下,作业分为两部分,Part1是要求做一份xml文档及其对应xsl模板出来~~而Part2是要求使用Python作为脚本语言来开发一个简单的订购小程序~~~详见:http://www.cs.sfu.ca/CC/165/hskhangu/assignments/assign3.html
说实话,刚看到这个Assignment我心里一点底都木有哇,虽说xml还熟悉点,不过xsl模板这方面接触的就少了,而且py这东西我都没怎么搞过,虽然在E50上也用过其他人写的程序,可是自己,却从来没想到要用这东西,不过今天正好有机会,来感受下很多人都说好的py咯~~
说干就干,我先百度了下关于xml及xsl的知识,发现其实很简单额,xml用来存储数据,而xsl作为模板来解析数据,可以由xml生成可读的xhtml~~吼吼,找了个Hello World的例子~~看了看 就觉得差不多了 吼吼,我自己可以开始咯~~
xml的书写非常简单,没什么难度~~
瞧 这样就Ok了~~反正xml嘛 注意一定有根 注意一定配对 就好了啦~~
下面就是xsl咯,这玩意我接触的少了,找了些资料(点击进入)大体看了下~~嗯嗯 明白差不多了,自己试着写了下~~嘿嘿 Bingo
这个看起来就是html,无非插入了一些xsl标签~~呵呵 具体的我就不说咯 毕竟我这不是教程~~
接下来就是我很大的挑战咯 python~~
我看了他Part2部分是用Py来做Web Service,随便百度了一下,得到的都是某某某框架~~很无语啊 换个关键词“python web环境 搭建”Ok 这下有了,各种各样的搭建方法,IIS,Apache,甚至还有自己用py写的程序~~什么 用Py写的~~Bingo 正是,而且代码还真的就没几行,就5行……囧……(详情看这里:python超简单的web服务器)
我还是把他web服务器的代码贴出来吧
from CGIHTTPServer import CGIHTTPRequestHandler
from BaseHTTPServer import HTTPServer
server_address=(”,80)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()
瞧 就这5行代码 保存为*.py 双击执行,Ok 访问Http://127.0.0.1 就可以咯~~如果想动态执行py脚本,可以在*.py那个文件夹下面创建cgi-bin文件夹,把你要动态执行的文件丢进去,在浏览器中访问http://127.0.0.1/cgi-bin/*.py就好咯~~是不是非常非常方便呀~~
之后就不用多说咯~~按照一般网页的规则来就好咯~~
不过在这里我也发现了一些问题,不知道是Py的问题还是我的问题~~
1)Py通过post方法得到的数据都是string
2) Py想要进行乘法运算的时候必须转换成int~~float的都不行鸟~~
3)Py如果想做Web开发 还是用框架集吧 不然真的很麻烦~~我没用框架,于是我先用DW生成网页,然后在Py里面用“三引号”把网页内容拆分了~~真郁闷 他竟然不支持类似asp或php的那种嵌入式用法……也许是我不会用吧~~
4)语法规则很严格啊~~像判断if语句,完全就是靠缩进来识别语句是否结束的鸟……一个不小心就麻烦咯~~
总之,我的目标还是达到咯 哈哈哈~~成功完成Assignment
最后PS一个,哈 今天我的TCCF上传量恰好是10.04G 哈 符合我生日的数字喔~~截图纪念下~~
技术牛人,膜拜之。
FAQ:
1.那肯定的
2.谁说的>?为什么在我这里就行?
3.这个嘛…Py在这里的本质是CGI..然后你知道的啦,只会输出你指定输出的内容.
4.这个是为马Py被称为最优美的程序设计语言的一方面原因…参考Perl的语法.一个程序首先是给人读的,Py这样做最大的保证了代码的可读性,所以Py的Bug比Perl少得多..
@雨碎江南, 我直接在shell下对float型进行乘法运算没有问题,但是我从网页传递参数过来,使用float()强制转换为float型之后,再运算出错 提示不能对float型进行乘法运算~~我也很奇怪~~
技术博···踩踩
@Exted, 哈 你的部落格技术文也很有风格 要不是几个专有名词 我还真没读出是技术文 哈哈~