Skip to content

Instantly share code, notes, and snippets.

@Tukki
Tukki / gist:3953990
Created October 25, 2012 16:52
filter by time in sqlalchemy
#http://stackoverflow.com/questions/7075828/make-sqlalchemy-use-date-in-filter-using-postgresql
from sqlalchemy import Date, cast
from datetime import date
my_date = (session.query(MyObject)
.filter(cast(MyObject.date_time, Date) == date.today())
.all())
@Tukki
Tukki / gist:3954052
Created October 25, 2012 17:02
获取昨天的某个时刻
import datetime
yestoday = datetime.date.today() - datetime.timedelta(days=1)
print yestoday
yestoday_datetime = datetime.datetime.combine(yestoday, datetime.time.min)
print yestoday_datetime
yestoday_datetime = datetime.datetime.combine(yestoday, datetime.time())
print yestoday_datetime
import time
class cached_property(object):
'''Decorator for read-only properties evaluated only once within TTL period.
src http://wiki.python.org/moin/PythonDecoratorLibrary#Cached_Properties
It can be used to created a cached property like this::
import random
@Tukki
Tukki / gist:5943755
Last active December 19, 2015 10:49
flask with static file, but not css/js... temporary, in development
http://stackoverflow.com/questions/13706382/how-to-get-static-files-in-flask-without-url-forstatic-file-name-xxx
You can Setup your own route to serve static
files. Add this method and update the static path director in the send_from_directory method and your img tag should work.
@app.route('/pic/<path:filename>')
def send_pic(filename):
return send_from_directory('/path/to/static/files', filename)
For a production app however, you should setup your server to serve static files directly.
@Tukki
Tukki / gist:18836ecae196006ae886
Last active August 29, 2015 14:01
voluptuous demo
def validate_iid(iid):
    pass


def get_action_id(action_name):
    pass


def form_error_to_json(view_func):

pass

@Tukki
Tukki / sqlalchemy_json_column.py
Last active August 29, 2015 14:05
使用sqlalchemy来读取的json格式的数据
#_*_ coding: utf-8 _*_
"""
Mutation Tracking
http://sqlalchemy.readthedocs.org/en/rel_0_8/orm/extensions/mutable.html
JSONColumn
https://bitbucket.org/zzzeek/sqlalchemy/wiki/UsageRecipes/JSONColumn
"""
@Tukki
Tukki / django_handler500_example
Created November 8, 2014 15:49
django handler500 示例
Index: home/moo/workspace/django-trunk/docs/request_response.txt
===================================================================
--- /home/moo/workspace/django-trunk/docs/request_response.txt (revision 6657)
+++ /home/moo/workspace/django-trunk/docs/request_response.txt (working copy)
@@ -588,3 +588,29 @@
That takes care of setting ``handler500`` in the current module. As you can see
in ``django/conf/urls/defaults.py``, ``handler500`` is set to
``'django.views.defaults.server_error'`` by default.
+
+Here is example how to log the exception using Python logging API and
@Tukki
Tukki / gist:4a931174a829e0b01b51
Created November 17, 2014 09:24
sqlalchemy reflecting all tables
Reflecting All Tables at Once
The MetaData object can also get a listing of tables and reflect the full set. This is achieved by using the reflect() method. After calling it, all located tables are present within the MetaData object’s dictionary of tables:
meta = MetaData()
meta.reflect(bind=someengine)
users_table = meta.tables['users']
addresses_table = meta.tables['addresses']
@Tukki
Tukki / gist:e6a79f9bf93ad7530348
Created June 30, 2015 04:50
shell判断脚本的当前目录. bash/zsh
if [ -n "$BASH" ] ; then
_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
_basepath=$(dirname "$_DIR")
fi
if [ -n "$ZSH_VERSION" ]; then
_DIR="$(dirname $(cd -P -- "$(dirname -- "$0")" && pwd -P))"
_basepath=$_DIR
fi
def get_count(q):
count_q = q.statement.with_only_columns([func.count()]).order_by(None)
count = q.session.execute(count_q).scalar()
return count
q = session.query(TestModel).filter(...).order_by(...)
# Slow: SELECT COUNT(*) FROM (SELECT ... FROM TestModel WHERE ...) ...
print q.count()