Nov 16, 2011

SQLAlchemy почему PostgreSQL?

Потому что я могу делать так:

c.nets = s.query(Net)
ip_type = request.GET.get('ip_type', '')
if ip_type=='4':
    c.nets = s.query(Net).filter("family(cidr)=4")
elif ip_type=='6':
    c.nets = s.query(Net).filter("family(cidr)=6")

c.nets = c.nets.order_by(Net.cidr).all()

Здесь если GET переменная ip_type=4 то выбираются все строки где cidr IPv4, если 6 то все стоки где cidr IPv6, иначе просто отдается все. Для фильтрации используется стандартная функция Postgres family. Пример был так расписан для наглядности, теперь сократим:

c.nets = s.query(Net)
ip_type = request.GET.get('ip_type', '')
if ip_type:
    c.nets = s.query(Net).filter("family(cidr)=%s" % ip_type)

c.nets = c.nets.order_by(Net.cidr).all()

По моему это просто шЫкарно.

../../../_images/awesome.jpeg

Comments

comments powered by Disqus