FEB

23

Wed

Author:EMINARCISSUS

被拍砖9次,接着砸!

折腾了3周整的东西终于上线了。用了一周的时间学习WP的数据库和并还原成PYTHON对象,用了半周的时间熟悉了2个PYTHON的当红架构DJANGO和WEB2PY,最终还是决定走回类JAVA的JANGO的路途中。

WEB2PY对象的声明属于典型的数据库驱动型,而且页面模板也可直接用PYTHON语句,对于习惯用编程语言写界面的人来说确实能方便不少,不过对于习惯MVC的整洁感的人来说这个很可能带来很致命的安全性问题的弊病。而且对于页面的整洁感也会带来一些影响。不过不管怎么说,每个人都有自己的习惯,也不会出现对错的问题,只是实践的方法不同了而已。

今天花了大半天的时间来折腾WSGI和PYTHON_MOD,因为服务器是CENTOS,所以默认的PYTHON版本是2.4,升到2.6后对YUM产生了一定的影响,解决方法呢,更改/usr/bin/yum的第一行的env python为python2.4然后全部解决。

扔到生产环境下PRINT语句就失效了,感觉真是难受,BUG主要出在了三个地方:

1:TWITTE栏为空。这点可以说是折腾我时间最久的BUG。DEVELOP环境下没问题,但是APACHE下就有。最后多方DEBUG后发现,居然是CACHE文件夹的读写权限出了问题,暂时解决方案chmod 777 /cache/python*username后解决。

2:部分页面提示数据库不可随机写入。这个问题,当时就想到是读写权的问题了,直接目录CHMOD 777解决。

P.S.:这些解决方案都是临时解决方案,最佳解决方案是重设APACHE用户名和组,然后对文件夹设定适应的权限而非给与777,这个只是为了DEBUG而在偷懒而已。

3:AKISMET的问题。。。

这点太纠结人了。偶尔提示说unicodedecodeerror: 'ascii' codec can't decode byte 0xe4 in position 5: ordinal not in range,这个错误总见了,因为ENVIRONMENT的区码带来的问题。于是跟代码,重新作判断,type(string)==str的话对其作string.decode('utf-8').encode('utf-8')后全线解决。最后给下AKISMET的提交参数:

blog(required)

user_ip(required)

user_agent (required)

referrer(note spelling)

permalink

comment_type

comment_author

comment_author_email

comment_author_url

comment_content


这里在实质判断上可以说除了permalink和comment_type以外都很重要。做了大概有20-30个SPAM测试,大概抓取率有40%左右吧,先扔生产环境测试一阵,如果有问题的话再考虑是加CAPTCHA还是通过默认FALSE来解决了。 嗯,废话就到这里。到周末剩余的几天作为测试环境,整理DOC和API,下一步准备写一个GALLERY出来,然后把THEME功能给实现了。至于插件,实现其实也比较简单,后台,这个我比较纠结。以后有时间慢慢再弄吧。 这里感谢一下在写代码的过程中帮忙调试的众位童鞋,回去一定要请你们吃火锅>_<。 以上,躺尸,累死了~

smiley