Exemplo n.º 1
0
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)')
    image = StringField(ddl='varchar(500)')
    created_at = FloatField(updatable=False, default=time.time)
Exemplo n.º 2
0
class Comment(Model):
    __table__ = 'comments'

    id = StringField(primary_key=True, default=next_id, ddl='varchar(50)')
    blog_id = StringField(updatable=False, 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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)')
    user_image = StringField(ddl='varchar(50)')
    name = StringField(ddl='varchar(50)')
    summary = StringField(ddl='varchar(50)')
    content = TextField()
    created_at = FloatField(updatable=False, default=time.time)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)')
    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
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
class User(Model):
    __table__ = 'user'

    id = StringField(primary_key=True, ddl='varchar(32)', default=next_id)
    email = StringField(updatable=False, ddl='varchar(50)')
    password = StringField(ddl='varchar(50)')
    permission = IntegerField()
    name = StringField(ddl='varchar(50)')
    created_at = FloatField(updatable=False, default=time.time)

    vali_email = validators.Email(not_empty=True,
                                  strip=True,
                                  messages={
                                      'noAt': u'这可不是一个正常的邮箱',
                                      'empty': u'邮箱不能爲空'
                                  })
    vali_name = formencode.All(
        validators.String(not_empty=True,
                          strip=True,
                          min=4,
                          max=24,
                          messages={
                              'empty': u'用户名不能为空',
                              'tooLong': u'这么长的用户名没有必要吧',
                              'tooShort': u'用户名长度不能少于4'
                          }),
        validators.PlainText(messages={'invalid': u'用户名只能包含数字,字母和下划线'}))
    vali_password = validators.String(not_empty=True,
                                      messages={'empty': u'忘记设置密码了'})
    vali_items = {
        'email': vali_email,
        'name': vali_name,
        'password': vali_password
    }

    def validate(self):
        self.errors = {}
        for k, vali in self.vali_items.items():
            try:
                vali.to_python(self[k])
            except formencode.Invalid as e:
                self.errors[k] = e

        if self.errors:
            return False
        return True

    def create(self):
        self.created_at = time.time()
        if not self.validate():
            return
        if User.find_first('where email = ?', self.email):
            self.errors = {'email': u'此email已被占用'}
            return
        if User.find_first('where name = ?', self.name):
            self.errors = {'name': u'此用戶名已被注冊'}
            return
        if not self.password_confirm:
            self.errors = {'password_confirm': u'确认密码不能为空'}
            return
        if self.password != self.password_confirm:
            self.errors = {'password': u'兩次密碼輸入不一致'}
            return
        self.password = hash_password(self.password)
        self.insert()
        return self.id

    def change_password(self, origin_password, password, password_confirm):
        if not origin_password:
            self.errors['origin_password'] = u'当前密码不能为空'

        if not password:
            self.errors['password'] = u'密码不能为空'

        if not password_confirm:
            self.errors['password_confirm'] = u'确认密码不能为空'

        if password != password_confirm:
            self.errors['password_confirm'] = u'两次密码不一致'

        if self.errors:
            return False

        self.password = hash_password(self.password)

        self.update()
Exemplo n.º 9
0
from transwarp.orm import Model, StringField, BooleanField, FloatField, TextField

def next_id():
	return '%015d%s000' % (int(time.time() * 1000), uuid.uuid4().hex)

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)')
    image = StringField(ddl='varchar(500)')
    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)')
    user_image = StringField(ddl='varchar(500)')
    name = StringField(ddl='varchar(50)')
    summary = StringField(ddl='varchar(200)')
    content = TextField()
    created_at = FloatField(updatable=False, default=time.time)