[PY]复杂情况(GAE)下Django的模板搜寻顺序自定义
嘛,作为下定决心学习新技术系列,正式开始折腾Django了,作为不放到网上跑会死星人放和不折腾会死星人,以及没钱买VPS穷鳖星人果断选择了在GAE上搭Django环境来玩,多亏python系和google系的众多Geek,让我有很多已有的open-source的project可以引用(后附清单)
因为引用的东西很多,所以目录管理成了很重要的一个问题,模板目录是一个比较复杂的问题,因为众多app中既有引用的app,可能需要用公用的模板去覆盖(比如openid登录),也有自己的实际项目的app,需要覆盖掉公用的模板,所以我在根目录建立了templates_override和templates_fallback来区分,然后如何设置对应的settings.py就成了问题
翻手册翻文档翻源码,需要自定义一个类来解决这个问题,下面是settings.py的片段
1 2 3 4 5 6 7 8 9 10 11 12 13 | from django.template.loaders.filesystem import Loader as fsLoader class settingsLoader(fsLoader): def __init__(self, dirs = None): self.dirs = dirs def load_template_source(self, template_name, template_dirs=None): if not template_dirs: template_dirs = self.dirs return super(settingsLoader, self).load_template_source(template_name, template_dirs) TEMPLATE_LOADERS = ( ('settings.settingsLoader', [os.path.join(os.path.dirname(__file__), 'templates_override')]), 'django.template.loaders.app_directories.load_template_source', ('settings.settingsLoader', [os.path.join(os.path.dirname(__file__), 'templates_fallback')]), ) |
目前来看Django还是比较顺手的,就是墙内部署GAE实在蛋疼……尤其是有这么多引用的app,文件数量很大……万幸GAE部署的时候不是一个个文件上传而是打包一炮上传的
附录:目前引用的project清单
- Django-nonrel (noSql Django移植版)
- djangoappengine (上述移植版的GAE接口)
- django-mediagenerator(打包CSS/JS用Django app)
- YUI Compressor (这个不用说了吧……)
- django-openid-auth (将OpenID整合至Django原生的认证)
- python-openid (OpenID的python支持)
[PHP]微博用分割消息代码(避免分割URL等语素
给自己的推特机器人用的代码,避免分割URL、@、#,另外会在后面表明消息总条数和当前编号,另外由于多数客户端都是新的在前面,所以逆向输出以方便阅读
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | public function tweet($msg) { $msg = trim($msg); if(($len = mb_strlen($msg))>130) { if($len > 1200) gx::throw_('tooooo long msg x_x'); $nonbreak = '%((?:@[a-zA-Z0-9_\-]+)|(?:#[\S]+)|(?:https?://[\w\s\.]+(?:/\S*)?))%'; $units = preg_split($nonbreak, $msg,-1, PREG_SPLIT_DELIM_CAPTURE); $msgs = array(); $buffer = ''; while($u=array_shift($units)) { if(mb_strlen($buffer)+mb_strlen($u) > 120) { if(preg_match($nonbreak, $u)) {//this unit is non-break! $msgs[] = $buffer; $buffer = $u; continue; } //break words $buffer .= $u; while(mb_strlen($buffer)>120) { $msgs[] = mb_substr($buffer,0,120); $buffer = mb_substr($buffer,120); } } else {//not too long yet, wait for next unit $buffer .= $u; } } $now = $all = count($msgs); $objs = array(); while($m = array_pop($msgs)) {//output in reversed order $objs[] = $this->tweet($m."($now/$all)"); $now--; } return $objs; } list($code, $response) = $this->request('1/statuses/update.json', 'POST', array( 'status' => $msg )); if ($code == 200) { return json_decode($response); } else { gx::throw_(htmlentities($response), $code); } } |
[PHP]QueryPath中的编码问题
其实发现QueryPath这个神奇的类库已经是几年前的事情了,QueryPath是一个PHP的DOM操作类库,仿jQuery风格。最近终于有机会来实战一把,却遇到了万恶的编码问题,根据API文档用convert_to_encoding来控制编码却一直失败(源码是UTF-8的),拿起了传说中的霰弹枪一顿乱打之后,还是在PHP官网的手册评论里面找到了答案,嗯,来一段代码或许更清楚一些
1 2 3 4 5 | return htmlqp($html, null, array( //'convert_from_encoding'=>'UTF-8', 'convert_to_encoding'=>'HTML-ENTITIES' ))->find('.tml_item')->text(); |
本站荣获GFW认证
2月20号下午2点起,本站正式荣获GFW认证,表现为域名mcfog.com遭DNS污染,今日上午约10点钟开始,购买的独立IP地址也被封,tracert结果停在上海电信骨干路由处
所幸独立IP被封,共享的IP还没有被封,所以只好切换到共享的IP(13刀水漂了),然后绑hosts上
173囧201囧98囧178 mcfog.com
嘛,不知GFW这轮要疯到什么时候,还是一直这么下去了……可怜我的域名才续费了2年啊,特此问候方校长以及各个相关人士的女性家属一百遍
PS:记录一下不受污染的DNS查阅方法
nslookup -vc yourdomain.com 8.8.8.8
===========================================
后记:
Godaddy说:“GFW不疼你,爹疼你”,于是给了我一个新的独立IP地址173囧201囧98囧195~
好吧,共享一下经验:和我一样Godaddy虚拟主机+SSL证书的童鞋,可以在My Account里点Web Hosting,然后点域名出来的那个小窗里切域名到Share,然后去Rekey一下,然后站会一段时间不能访问,然后你就拥有了一个新的独立IP,但是这个IP只是帮你DNS修改好并且SSL正常可以HTTPS,在控制面板等处却看不见了,要自己保管好……嗯嗯

【原创】在线生成器 of 《魔法少女小圆》剧中的符文
好吧,剧中的符文中还缺X等个别字母,不过本站的域名倒是够了
![]()
TTF格式字体来自此维基页
http://wiki.puella-magi.net/Deciphering_the_runes#Runic_Font
标签
McFog’s Bot
- mcfog_bot: 主人@mcfog 在#Bangumi 看过 ep.4 Put flesh -輪郭-(http://t.co/Wuq91wut) Another(http://t.co/FTrqNeIo)
- mcfog_bot: 主人@mcfog 在#Bangumi 看过 ep.5 恋愛禁止令(http://t.co/kwUehkE6) アクエリオンEVOL(http://t.co/fn60m9QW)
- mcfog_bot: 主人@mcfog 在#Bangumi 看过 ep.4 部長の選択(http://t.co/lvffUIpo) 新テニスの王子様(http://t.co/5mQVa1mf)
- mcfog_bot: 主人@mcfog 在#Bangumi 将 Meteora(http://t.co/7mFpW1z6) 加为了好友
- mcfog_bot: 主人@mcfog 在#Bangumi 看过 ep.4 女王陛下の恩賞(http://t.co/rhzuIqfn) ゼロの使い魔F(http://t.co/LUx1jwx9)
