Magento with python connect

近期一直在接触Magento这个PHP的商贸平台。非常强大的后台,同时也带来了非产大的维护量。好像我这种已经被Python污染到简单至上的人,用起来,绝对是噩梦。找到了一个非常好的支持库:python-magento: https://github.com/zikzakmedia/python-magento这个库本身是为了对接OpenERP开发的,顺手借用,觉得非常适合来作为后台支持。毕竟社区版的Magento后台功能非常有限。

<span title='2013-08-22 07:29:00 +0000 UTC'>2013/08/22 Aug</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;2 words&nbsp;·&nbsp;map[name:SCys uri:]

sqlalchemy relationship实例添加顺序

近来一直埋头到python的编程中。用到了sqlalchemy这个库,记录下以下一个案例。定义两个Model类class A(Model): … child = relationship(‘B’, backref=‘parent’)class B(Model): … a_id = Column(…, ForeignKey(A.id))然后我们要将B实例添加到A实例child中,正确的做法是,先读取A实例到会话中后操作B实例:»> a = A.query.filter(…).first()»> b = B() or B.query.filter(…).first()»> a.child.append(b)»> db.session.commit() OK这样是没有问题,当然留意,让建立B后再读取A实例到会话,提交的时候会提示A实例已经有变化的错误,如下:»> b = B() or B.query.filter(…).first()»> a = A.query.filter(…).first()»> a.child.append(b)»> db.session.commit() ObjectDereferencedError: Can’t emit change event for attribute ‘A.child’ - parent object of type has been garbage collected

<span title='2013-02-11 02:29:00 +0000 UTC'>2013/02/11 Feb</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;51 words&nbsp;·&nbsp;map[name:SCys uri:]

simulate www browser with python

Simulate www browser with python. So easy with these libraries: spynner: base on libQtNetwork splinter: base on selenium WebDriver but not stable. Spynner: #!/usr/bin/python # -*- coding: utf-8 -*- import spynner import pyquery browser = spynner.Browser(debug_level=spynner.INFO) browser.create_webview() browser.show() browser.load('http://www.wordreference.com') browser.load_jquery(True) browser.choose('input[name=lr=lang_es]') browser.click('input[name=enit]') browser.click('a[class=l]:first') d = pyquery.PyQuery(browser.html) d.make_links_absolute(base_url=browser.url) href = d('a:last').attr('href') print href print len(browser.download(href)) browser.browse() Splinter install splinter: easy_install splinter install depend google chrome or firefox; install depend webdriver google chrome server wrap, download some package in https://code....

<span title='2012-11-30 22:23:00 +0000 UTC'>2012/11/30 Nov</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;145 words&nbsp;·&nbsp;map[name:SCys uri:]

让DataTables支持Flask

近来工作原因,正在从Django转到Flask,而其中将DataTables移植到了Flask中去.基本的功能还是工作了,还差那个正则和另外一个不常用到的属性,现在还是用着先,如果有任何BUG请留言或者给我发邮件.需要用到常用扩展:Flask-Sqlalchemy,Flask-WTF dt = DataTable() dt.filter(Account.all_username_q(),( (‘AccountAttribute.id’,‘ID’), (‘AccountAttribute.username’,Account.display_name(‘username’)), (‘AccountAttribute.value’,Account.display_name(‘CT.LanNumber’)), )) return dt.json()一下是详细代码,英文不好,见到错误请多多指正:# coding:utf-8from flask.ext.wtf import Form,html5, TextField,StringField,IntegerField,BooleanFieldfrom flask import request,jsonifyfrom core import dbclass DataTableForm(Form): iDisplayStart = IntegerField() iDisplayLength = IntegerField() iColumns = IntegerField() sSearch = StringField(64) bRegex = BooleanField() sEcho = StringField(64)class DataTable(object): ‘’’ dt = DataTable() dt.filter(Account.all_username_q(),( (‘AccountAttribute.id’,‘ID’), (‘AccountAttribute.username’,Account.display_name(‘username’)), (‘AccountAttribute.value’,Account.display_name(‘CT.LanNumber’)), )) return dt.json() ‘’’ form = None data = None def valid(self): self.form = DataTableForm(csrf_enabled=False) return self.form.validate_on_submit() def col(self,name): table,field = name....

<span title='2012-07-29 10:08:00 +0000 UTC'>2012/07/29 Jul</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;273 words&nbsp;·&nbsp;map[name:SCys uri:]

C++0x erase in loop

现在正在使用C++开发一个S/C的程序,用到有趣的C++,竟然还是成为笑话。一个删除std::vecotr里面元素的编写,就让我头大了两个小时,郁闷郁闷。#include #include int main() { std::vector x = { 0, 1, 2, 3, 4, 5, 6 }; auto i = x.begin(); while( i!=x.end() ) { if( *i / 2 ) x.erase(i++); else i++; } for(auto y:x) { std::cout « y « " “; }}

<span title='2012-06-07 04:43:00 +0000 UTC'>2012/06/07 Jun</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;44 words&nbsp;·&nbsp;map[name:SCys uri:]