Exemplo n.º 1
0
 def form_validate(self, data):
     error = {}
     
     b = date.to_date(data['begin_date'])
     if not b:
         error['begin_date'] = '日期格式不正确,应该为 yyyy-mm-dd'
     e = date.to_date(data['end_date'])
     if not e:
         error['end_date'] = '日期格式不正确,应该为 yyyy-mm-dd'
     b_time = date.to_time(data['begin_time'])
     if not b_time:
         error['begin_time'] = '日期格式不正确,应该为 yyyy-mm-dd'
     
     return error
Exemplo n.º 2
0
def load_table(table,
               filename,
               con,
               delimiter=',',
               format=None,
               encoding='utf-8',
               delete=True):
    import csv
    from uliweb.utils.date import to_date, to_datetime

    table = reflect_table(con, table.name)

    if delete:
        do_(table.delete())

    if not os.path.exists(filename):
        log.info("The table [%s] data is not existed." % table.name)
        return

    f = fin = open(filename, 'rb')
    try:
        first_line = f.readline()
        fields = first_line[1:].strip().split()
        n = 1
        if format:
            fin = csv.reader(f, delimiter=delimiter)

        for line in fin:
            try:
                n += 1
                if not format:
                    line = eval(line.strip())
                record = dict(zip(fields, line))
                params = {}
                for c in table.c:
                    if c.name in record:
                        if not format:
                            params[c.name] = record[c.name]
                        else:
                            if record[c.name] == 'NULL':
                                params[c.name] = None
                            else:
                                if isinstance(c.type, String):
                                    params[c.name] = unicode(
                                        record[c.name], encoding)
                                elif isinstance(c.type, Date):
                                    params[c.name] = to_date(
                                        to_datetime(record[c.name]))
                                elif isinstance(c.type, DateTime):
                                    params[c.name] = to_datetime(
                                        record[c.name])
                                else:
                                    params[c.name] = record[c.name]
                ins = table.insert().values(**params)
                do_(ins)
            except:
                log.error('Error: Line %d' % n)
                raise
    finally:
        f.close()
Exemplo n.º 3
0
def load_table(table, filename, con, delimiter=',', format=None, encoding='utf-8', delete=True):
    import csv
    from uliweb.utils.date import to_date, to_datetime
    
    table = reflect_table(con, table.name)
    
    if delete:
        do_(table.delete())
    
    if not os.path.exists(filename):
        log.info("The table [%s] data is not existed." % table.name)
        return 
    
    f = fin = open(filename, 'rb')
    try:
        first_line = f.readline()
        fields = first_line[1:].strip().split()
        n = 1
        if format:
            fin = csv.reader(f, delimiter=delimiter)
            
        for line in fin:
            try:
                n += 1
                if not format:
                    line = eval(line.strip())
                record = dict(zip(fields, line))
                params = {}
                for c in table.c:
                    if c.name in record:
                        if not format:
                            params[c.name] = record[c.name]
                        else:
                            if record[c.name] == 'NULL':
                                params[c.name] = None
                            else:
                                if isinstance(c.type, String):
                                    params[c.name] = unicode(record[c.name], encoding)
                                elif isinstance(c.type, Date):
                                    params[c.name] = to_date(to_datetime(record[c.name]))
                                elif isinstance(c.type, DateTime):
                                    params[c.name] = to_datetime(record[c.name])
                                else:
                                    params[c.name] = record[c.name]
                ins = table.insert().values(**params)
                do_(ins)
            except:
                log.error('Error: Line %d' % n)
                raise
    finally:
        f.close()
Exemplo n.º 4
0
    def _make_data(self):
        from uliweb.utils import date

        return {
            'str':'string',
            'password':'******',
            # 'hidden':'hidden',
            'int':10,
            'float':1.0,
            'bool':True,
            'list':[u'中', u'文'],
            'select1':'F',
            'select2':['F', 'M'],
            'radios1':'F',
            'radios2':'M',
            'checkboxes1':['F'],
            'checkboxes2':['F', 'M'],
            'date':date.to_date('2010-10-12'),
            'datetime':date.to_datetime('2010-10-12 13:23:45'),
            'time':date.to_time('13:23:45'),

            'desc':'<p>abc</p><p>cde</p>',

        }
Exemplo n.º 5
0
def load_table(table,
               filename,
               con,
               delimiter=',',
               format=None,
               encoding='utf-8',
               delete=True,
               bulk=100,
               engine_name=None):
    import csv
    from uliweb.utils.date import to_date, to_datetime

    if not os.path.exists(filename):
        return "Skipped (data not found)"

    table = reflect_table(con, table.name)

    if delete:
        do_(table.delete(), engine_name)

    b = time()
    bulk = max(1, bulk)
    f = fin = open(filename, 'rb')
    try:
        first_line = f.readline()
        if first_line.startswith('#'):
            first_line = first_line[1:]
        n = 0
        count = 0
        if format:
            fields = first_line.strip().split(delimiter)
            fin = csv.reader(f, delimiter=delimiter)
        else:
            fields = first_line.strip().split()

        buf = []
        for line in fin:
            try:
                n += 1
                count += 1
                if not format:
                    line = eval(line.strip())
                record = dict(zip(fields, line))
                params = {}
                for c in table.c:
                    if c.name in record:
                        if not format:
                            params[c.name] = record[c.name]
                        else:
                            if record[c.name] == 'NULL':
                                params[c.name] = None
                            else:
                                if isinstance(c.type, String):
                                    params[c.name] = unicode(
                                        record[c.name], encoding)
                                elif isinstance(c.type, Date):
                                    params[c.name] = to_date(
                                        to_datetime(record[c.name]))
                                elif isinstance(c.type, DateTime):
                                    params[c.name] = to_datetime(
                                        record[c.name])
                                else:
                                    params[c.name] = record[c.name]
                buf.append(params)
                if count >= bulk:
                    do_(table.insert(), engine_name, args=buf)
                    count = 0
                    buf = []
            except:
                log.error('Error: Line %d' % n)
                raise

        if buf:
            do_(table.insert(), engine_name, args=buf)

        return 'OK (%d/%lfs)' % (n, time() - b)
    finally:
        f.close()
Exemplo n.º 6
0
def load_table(table, filename, con, delimiter=',', format=None, 
    encoding='utf-8', delete=True, bulk=100, engine_name=None):
    import csv
    from uliweb.utils.date import to_date, to_datetime

    if not os.path.exists(filename):
        return "Skipped (data not found)"

    table = reflect_table(con, table.name)
    
    if delete:
        table.drop(con)
        table.create(con)
        # do_(table.drop(), engine_name)
        # do_(table.create(), engine_name)

    b = time()
    bulk = max(1, bulk)
    f = fin = open(filename, 'rb')

    try:
        first_line = f.readline()
        if first_line.startswith('#'):
            first_line = first_line[1:]
        n = 0
        count = 0
        if format:
            fields = first_line.strip().split(delimiter)
            fin = csv.reader(f, delimiter=delimiter)
        else:
            fields = first_line.strip().split()

        buf = []
        for line in fin:
            try:
                n += 1
                count += 1
                if not format:
                    line = eval(line.strip())
                record = dict(zip(fields, line))
                params = {}
                for c in table.c:
                    if c.name in record:
                        if not format:
                            params[c.name] = record[c.name]
                        else:
                            if record[c.name] == 'NULL':
                                params[c.name] = None
                            else:
                                if isinstance(c.type, String):
                                    params[c.name] = unicode(record[c.name], encoding)
                                elif isinstance(c.type, Date):
                                    params[c.name] = to_date(to_datetime(record[c.name]))
                                elif isinstance(c.type, DateTime):
                                    params[c.name] = to_datetime(record[c.name])
                                else:
                                    params[c.name] = record[c.name]
                buf.append(params)
                if count >= bulk:
                    do_(table.insert(), engine_name, args=buf)
                    count = 0
                    buf = []
            except:
                log.error('Error: Line %d of %s' % (n, filename))
                raise
        
        if buf:
            do_(table.insert(), engine_name, args=buf)

        return 'OK (%d/%lfs)' % (n, time()-b)
    finally:
        f.close()
Exemplo n.º 7
0
 def validate(self, data, all_data=None):
     return bool(date.to_date(data))
Exemplo n.º 8
0
 def validate(self, data, all_data=None):
     return bool(date.to_date(data))