class Device_Observed(Model): __table__ = "device_observed" id = StringField(primary_key=True, ddl='varchar(32)', default=next_id) device_id = StringField(ddl='varchar(32)') user_id = StringField(ddl='varchar(32)') def observe(self, user_id, device_id): observed = self.find_first('where user_id = ? and device_id = ?', user_id, device_id) if not observed: self.user_id = user_id self.device_id = device_id self.insert() return True return True def unobserve(self, user_id, device_id): observed = self.find_first('where user_id = ? and device_id = ?', user_id, device_id) if observed: observed.delete() return True return True def observed_devices(self, user_id): dev_ids = self.find_by('where user_id = ?', user_id) devices = [] dev = Device() for dev_id in dev_ids: devices.append(dev.get(dev_id.device_id)) return devices def count_user_devices(self, user_id): return self.count_by('where user_id = ?', user_id)
class History(Model): __table__ = 'histories' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') user_id = StringField(updatable=False, ddl='varchar(50)') movie_id = StringField(updatable=False, ddl='varchar(50)') created_at = FloatField(default=time.time)
class Data(Model): __table__ = 'col_data' id = StringField(primary_key=True, ddl='varchar(32)', default=next_id) device_id = StringField(ddl='varchar(50)') type_id = StringField(ddl='varchar(50)') value = FloatField(ddl='double') created_at = FloatField(ddl='double', updatable=False, default=time.time)
class departments(Model): """docstring for ClassName""" __table__ = 'departments' departmentID = StringField(primary_key=True, ddl='varchar(10)', updatable=False) departmentName = StringField(ddl='varchar(50)')
class Response(Model): __table__ = 'responses' id = StringField(primary_key=True, ddl='int(32)') rid = StringField(updatable=False, ddl='varchar(64)') response_xss = LongTextField() response_fi = LongTextField() update_time = StringField(ddl='varchar(255)')
class Sqlmap(Model): __table__ = 'sqlmap' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') ip = StringField(ddl='varchar(40)') port = StringField(ddl='varchar(40)') status = StringField(ddl='int(4)') update_time = StringField(ddl='varchar(255)')
class Comment(Model): __talbe__ = 'comments' id = StringField(primary_key=True, default=get_id, updatable=False) blog_id = StringField(updatable=False) user_id = StringField(updatable=False) user_name = StringField() content = TextField() created_at = FloatField(updatable=False, default=time.time)
class User(Model): __table__ = 'users' id = StringField(primary_key=True, default=get_id, updatable=False) email = StringField(updatable=False) password = StringField() admin = BooleanField() name = StringField() created_at = FloatField(updatable=False, default=time.time)
class User(Model): __table__ = 'users' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') email = StringField(updatable=False, ddl='varchar(50)') password = StringField(ddl='varchar(50)') admin = BooleanField() name = StringField(ddl='varchar(50)') created_at = FloatField(updatable=False, default=time.time)
class Device(Model): __table__ = 'devices' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') node_id = StringField(ddl='varchar(50)') device_name = StringField(ddl='varchar(50)') device_data = StringField(ddl='varchar(50)') created_at = FloatField(default=time.time)
class Comment(Model): __table__ = 'comments' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') user_id = StringField(updatable=False, ddl='varchar(50)') user_name = StringField(ddl='varchar(50)') user_image = StringField(ddl='varchar(500)') content = TextField() created_at = FloatField(updatable=False, default=time.time)
class Users(Model): __table__ = 'users' id = StringField(updatable=False,primary_key=True, default=next_id, ddl='varchar(50)') email = StringField(updatable=False, ddl='varchar(50)') tel = StringField(ddl='varchar(50)') admin = BooleanField() status = BooleanField() create_time= StringField(default =now_datetime)
class Blog(Model): __table__ = 'blogs' id = StringField(primary_key=True, default=get_id, updatable=False) user_id = StringField(updatable=False) user_name = StringField() name = StringField() summary = StringField() content = TextField() created_at = FloatField(updatable=False, default=time.time)
class Blog(Model): __table__ = 'blogs' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') user_id = StringField(updatable=False, ddl='varchar(50)') user_name = StringField(ddl='varchar(50)') name = StringField(ddl='varchar(50)') summary = StringField(ddl='varchar(200)') content = TextField() created_at = FloatField(updatable=False, default=time.time)
class Comment(Model): __table__ = 'comments' id = IntegerField(primary_key=True, auto_increment=True) blog_id = StringField(updatable=False, size=50) user_id = StringField(updatable=False, size=50) user_name = StringField(50) user_image = StringField(500) content = TextField() created_at = TimestampField(updatable=False, default=time.time)
class Review(Model): __table__ = 'reviews' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') movie_id = StringField(updatable=False, ddl='varchar(50)') user_id = StringField(updatable=False, ddl='varchar(50)') user_name = StringField(ddl='varchar(50)') score = IntegerField() content = TextField() created_at = FloatField(default=time.time)
class User(Model): __table__ = 'users' id = IntegerField(primary_key=True, auto_increment=True) name = StringField(size=50) email = StringField(updatable=False, size=50) password = StringField(50, default='123456') admin = BooleanField(default=False) image = StringField(500, default='') created_at = TimestampField(updatable=False, default=time.time)
class Attachment(Model): u'附件' __table__ = 'attachments' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') user_id = StringField(updatable=False, ddl='varchar(50)') local_name = StringField(ddl='varchar(50)') file_name = StringField(ddl='varchar(500)') file_type = StringField(ddl='varchar(200)') file_size = IntegerField() created_at = FloatField(updatable=False, default=time.time)
class User(Model): ''' 日期和时间用float类型存储在数据库中,而不是datetime类型, 这么做的好处是不必关心数据库的时区以及时区转换问题,排序非常简单, 显示的时候,只需要做一个float到str的转换,也非常容易。 ''' __table__ = 'users' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') email = StringField(updatable=True, ddl='varchar(50)') password = StringField(ddl='varchar(50)') admin = BooleanField() name = StringField(ddl='varchar(50)') image = StringField(ddl='varchar(50)') created_at = FloatField(updatable=False, default=time.time)
class Unactiveurl(Model): __table__='unactiveurl' id = StringField(updatable=False,primary_key=True, default=next_id, ddl='varchar(50)') user_id = StringField(updatable=False, ddl='varchar(50)') url = StringField(ddl='varchar(255)') frequent = IntegerField(updatable=False, default=30) top_num = IntegerField(updatable=False, default=1) send_mail_num = IntegerField(updatable=True, default=0) total_record_num = IntegerField(updatable=True, default=0) get_page_num = IntegerField(updatable=True, default=0) parse_page_num = IntegerField(updatable=True, default=0) new_record_num = IntegerField(updatable=True, default=0) record_contents = TextField() last_send_time = StringField(default =now_datetime) create_time= StringField(default =now_datetime)
class Data_Table_Map(Model): id = StringField(primary_key=True, ddl='varchar(32)', default=next_id) start_time = FloatField(ddl='double', default=time.time) end_time = FloatField(ddl='double') index = IntegerField() @classmethod def get_last_table_index(cls): if cls.count_all() == 0: return 0 else: data_table = cls.find_first('order by start_time desc') if data_table: return data_table.index else: return 0 @classmethod def add_table(cls, index): r = redis.Redis() dt = Data() dt.create_table(sub_name=str(index)) r.set("last_data_table_index", index) new_table = Data_Table_Map() new_table.end_time = time.time() new_table.index = index new_table.insert() @classmethod def get_tables(cls, start_time, end_time): return cls.find_by('where start_time<? and end_time>?', end_time, start_time)
class Device(Model): __table__ = 'device' id = StringField(primary_key=True, ddl='varchar(32)', default=next_id) location = StringField(ddl='varchar(50)') mac = StringField(ddl='varchar(50)') dev_type = StringField(ddl='varchar(50)') lat = FloatField(ddl='double') lon = FloatField(ddl='double') status = IntegerField() #0 good; 1 inactive; 2 warning; 3 error created_at = FloatField(updatable=False, default=time.time) def create(self): #print self.location,self.mac try: if self.location and self.mac: self.insert() return self.id else: return None except Exception as e: return None def creator(self, device_id): return self.find_first('where id = ?', device_id) def update_info(self): try: if self.location and self.mac: dev_info = self.find_first('where mac = ?', self.mac) dev_info.location = self.location dev_info.update() return dev_info.id else: return None except: return None def get_device_by_mac(self, mac): #mac_wrapped = get_md5(mac) device = self.find_first('where mac = ?', mac) if device: return device return None
class DailyRankV3(Model): """仅用于读取计算日营收评级相关数据""" __table__ = "daily_rank_v3" id = IntegerField(ddl='int(11)', comment=u'id', primary_key=True) statistic_date = DateField(comment=u'哪一日的营收', key=True) user_id = IntegerField(default=None, nullable=False, ddl='int(11)', comment=u'风先生id', key=True) org_num = StringField(default=None, nullable=False, ddl='varchar(65)', comment=u'所属中队架构编号') number_of_middle_teammates = IntegerField(ddl='smallint(6)', comment=u'该日所属中队成员数')
class Position_Image(Model): __table__ = "position_image" id = StringField(primary_key=True, ddl='varchar(32)', default=next_id) device_id = StringField(ddl='varchar(32)') position = IntegerField() object_name = StringField(ddl='varchar(50)') duration = StringField(ddl='varchar(50)') def validate(self): dev = Device() if not dev.creator(self.device_id): return False if self.duration <= 0: return False return True def create(self): if not self.validate(): return pos = self.find_first('where device_id = ? and position = ?', self.device_id, self.position) if pos: self.id = pos.id self.update() else: self.insert() return self.id def get_position_id(self, device_id, position): pos = self.find_first('where device_id = ? and position = ?', device_id, position) if not pos: return None return pos.id def get_position_by_device_id(self, device_id): pos = self.find_by('where device_id = ?', device_id) if pos: return pos return []
class State(Model): __table__ = 'states' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') line=FloatField(default=time.time) room_light = BooleanField(default=False) door_lock=BooleanField(default=False) room_temp=FloatField(default=time.time) message=FloatField(default=time.time) #tip1 = FloatField(default=time.time) #tip2 = FloatField(default=time.time)
class students(Model): """docstring for students""" __table__ = 'students' studentID = StringField(primary_key=True, ddl='varchar(10)', updatable=False) studentName = StringField(ddl='varchar(40)', default='张三') studentDepartment = StringField(ddl='varchar(50)', default='0048') home = StringField(ddl='varchar(50)', default='中国') # grade = IntegerField(ddl='bit', default=1) # classes = IntegerField(ddl='bit', default=1) sex = IntegerField(ddl='integer', default=0) score_part2 = IntegerField(ddl='integer', default=0) score_part3 = IntegerField(ddl='integer', default=0) finished = BooleanField(default=False) logintime = TimeField(updatable=False, default=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
class student_ques(Model): """""" __table__ = 'student_ques' # studentID = StringField(ddl='varchar(10)', # foreign_key=True, # reference=('students', 'studentID')) # questionID = IntegerField(ddl='integer', foreign_key=True, reference=('question', 'questionID')) # answer = StringField(ddl='varchar(500)') # anstime = TimeField(ddl='DateTime', updatable=False, # default=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # primary_key = ('studentID', 'questionID') studentID = StringField(ddl='varchar(10)', primary_key=True, updatable=False) questionID = IntegerField(ddl='integer', updatable=False) answer = StringField(ddl='varchar(500)') anstime = TimeField(ddl='DateTime', updatable=False, default=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
class Image(Model): __table__ = 'image' id = StringField(primary_key=True, ddl='varchar(32)', default=next_id) position_id = StringField(ddl='varchar(32)') path = StringField(ddl='varchar(200)') created_at = FloatField(ddl='double', updatable=False, default=time.time) def validate(self): if os.path.exists(self.path): return True return False def create(self): #self.created_at = time.time() try: self.insert() return self.id except: return None def count_by_position_id(self, position_id): return self.count_by('where position_id = ?', position_id)
class Task(Model): __table__ = 'tasks' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') user_id = StringField(updatable=False, ddl='varchar(50)') task_status = StringField(ddl='varchar(1)') task_name = StringField(ddl='varchar(50)') start_time = FloatField(updatable=False, default=time.time) end_time = FloatField(updatable=True) description = StringField(ddl='varchar(200)') created_at = FloatField(updatable=False, default=time.time) created_by = StringField(ddl='varchar(50)') updated_at = FloatField(updatable=True, default=time.time) updated_by = StringField(ddl='varchar(50)')
class PayrollGrade(Model): """存储薪资等级Model,存储配送员日营收评级(可能需要实时),用于薪资结算,历史数据查询""" __table__ = "payroll_grade" id = IntegerField(ddl='int(11)', comment=u'日营收等级id', primary_key=True) statistic_date = DateField(comment=u'哪一日的营收', key=True) deliveryman_id = IntegerField(default=None, nullable=False, ddl='int(11)', comment=u'风先生id', key=True) grade = IntegerField(default=None, nullable=False, ddl='int(3)', comment=u'风先生当日营收评级[10,90,step=10]') middle_team_org_num = StringField(default=None, nullable=False, ddl='varchar(32)', comment=u'所属中队架构编号') delivery_fee = IntegerField(default=None, nullable=False, ddl='int(11)', comment=u'配送费(日营收), 单位为分') delivery_fee_goal = IntegerField(default=None, nullable=False, ddl='int(11)', comment=u'配送费(日营收)目标值, 单位为分') delivery_fee_rank = IntegerField(default=None, nullable=True, ddl='int(3)', comment=u'配送费(日营收)在所属中队中的排名') create_time = DateTimeField(key=True, auto_now_add=True) update_time = DateTimeField(auto_now=True)