这两天公司有一个东西要用web制作,但是一直招不到人,我就自己上了,权当锻炼了,虽然公司最近坑了我几次,但毕竟这对自己成长有利
前端是用Jquery+bootstrap制作,这个不用说了
后端是用django
1.bootstrap的布局
bootstrap的布局有点奇怪,是用列的,一个页面只能有12列,跟我们平常用QT或者WX的布局方式有点不一样,但也可用接受
不好的地方就是它没办法平均划分行的高度,在我的页面中我需要嵌入一个直线图用于显示数据,总共要分成两行,我用的是百度的ECHART,由于不能平均划分行,只能自己手动计算了,后面还要适配手机端,蛋疼死了
2.django的网页查找方式
在输入一个网页的时候,发送给django,django会根据正则表达式来匹配对应的网页,匹配网页的规则在urls.py里面
值得一提的是,如果在一个html网页里面有引用到外部的js文件或者HTML文件,请求也会发送到这个网页的匹配规则,然后在从对应app里面的views里面查找对应的函数执行,如果我们没有编写匹配规则以及响应,那么会找不到这个网页,我之前一直以为写的跟在本地的网页是差不多的,如果要引用其他的资源,只要src="./xxx.html"就可以了,没想到那么麻烦
不过一些静态的资源django可以自动帮我们处理,只要设置好静态资源的路径就可以了,具体网上有教程了
3.前端和后端的通讯
前端和后端的通讯跟我想象的差不多,都是利用json来通讯,不过我没想到通讯方式跟网页通讯差不多,都是发送一个地址,然后django去urls.py里面匹配对应的规则,然后再到views里面去执行,返回的也是一个httpResponse,不过想来也对,整个网页都是基于http通讯的
4.网页的调试方式
不得说,制作网页和用python写后端真是很简单,不用编译,想到用C++要等一个编译和链接时间,要是改到头文件更蛋疼
但是同样的,调试起来也很麻烦,虽然firefox的调试工具很强大,但是后端的python出错了后也没无法知道错在那里,只能看到firefox的调试工具返回了一个500的错误
后面是自己一行代码一行代码printf才发现程序执行到那里错误,但是看了半天也没发现错误,自己写了好多测试的代码也没都执行正常
后来发现是django在传入一个函数的时候,是用字符串的方式传递进去的,但是用写代码的时候,是用int类型来处理的,于是乎,在range(1,value)的时候就出错了
所以说,动态类型一时爽,调试起来火葬场,总算是体会到了
原文:http://www.cnblogs.com/linyilong3/p/5049244.html