Exemple #1
0
    """
    mysql 距离计算工式
    对应sql: round(glength(linestringfromwkb(linestring(asbinary(a), asbinary(b)))))
    """
    # return fn.round(fn.ST_Distance(p1, p2)*100, 6)
    return fn.round(
        fn.glength(fn.linestringfromwkb(fn.linestring(p1, p2))) * 100, 6)


def ST_Within(p1, xy1, xy2):
    # envelope(linestring(point(@rlon1, @rlat1), point(@rlon2, @rlat2)))
    return fn.ST_Within(p1, fn.envelope(fn.linestring(xy1, xy2)))


# 注册点类型
MySQLDatabase.register_fields({'point': 'point'})


class RetryMySQLDatabase(RetryOperationalError, MySQLDatabase):
    pass


class TextListWidget(object):
    def __call__(self, field, **kwargs):
        html = []
        for subfield in field:
            html.append('%s' % (subfield(**kwargs)))

        # html.append('</%s>' % self.html_tag)
        return widgets.HTMLString(''.join(html))
Exemple #2
0
import time
from HTMLParser import HTMLParser

from peewee import MySQLDatabase, Field, Model, CharField, DecimalField, DateTimeField, IntegerField, BigIntegerField

from credentials import MYSQL_USER, MYSQL_PASS, MYSQL_HOST


DB_NAME = 'twitter'
FILTER_LEVEL = {None: None, 'none': 0, 'low': 1, 'medium': 2, 'high': 3}


html_parser = HTMLParser()

MySQLDatabase.register_fields({'TINYINT': 'TINYINT'})

database = MySQLDatabase(DB_NAME, host=MYSQL_HOST, port=3306, user=MYSQL_USER, passwd=MYSQL_PASS)


# Custom Field definitions
class TinyIntField(Field):
	db_field = 'TINYINT'


# Model definitions
class BaseModel(Model):
	class Meta:
		database = database

# Should be ~400 bytes max
class Tweet(BaseModel):
Exemple #3
0
def insert_ignore(model_class, **insert):
    execute_query(model_class, InsertIgnoreQuery, **insert)


def insert_update(model_class, **insert):
    """Only supported by mysql"""
    execute_query(model_class, InsertUpdateQuery, **insert)


#
# FIELDS
#

MySQLDatabase.register_fields({
    'timestamp_updated':
    'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
})


class TimestampUpdatedField(DateTimeField):
    """Doesn't work with null=False and primary key
    """
    db_field = 'timestamp_updated'

    def db_value(self, value):
        value = datetime.now()
        return DateTimeField.db_value(self, value)


class JSONField(CharField):
    """VARCHAR fields have max length of 255 (mysql < 5.0.3) or 65,535. The