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
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()
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()
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>', }
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()
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()
def validate(self, data, all_data=None): return bool(date.to_date(data))