peewee创建mysql_peewee中创建自己的Field

peewee中创建自己的Field,主要通过继承Field或其子类来完成

如果有mysql中对应的字段,则将其赋值给db_field即可。这里对set, enum并没有找到通用的字段定义,但是对具体的业务可以进行如GenderField这样的个性化定制。

如果没有,则使用其父类的db_field字段,并定义db_value和python_value两个方法来完成与数据库中数据类型之间的转化

# 时间戳字段

class TimeStampField(Field):

db_field = 'timestamp'

class SmallIntegerField(IntegerField):

db_field = 'smallint'

class PasswordField(FixedCharField):

def __init__(self, *args, **kwargs):

self.max_length =64

super(PasswordField, self).__init__(max_length=self.max_length, *args, **kwargs)

def db_value(self, value):

return encrypt(value)

def python_value(self, value):

return encrypt(value)

# 性别字段

class GenderField(Field):

db_field = 'enum("f", "m")'

建立表格如下:

class Base(Model):

class Meta:

database = db

class Person(Base):

name = CharField(max_length=20, default='haha')

intro = TextField(default='')

birth = DateTimeField(default=datetime.now())

Married = BooleanField(default=False)

height = FloatField(default=0)

wight = DoubleField(default=0)

salary = DecimalField(default=0)

Save = BigIntegerField(default=0)

family = SmallIntegerField(default=0)

age = IntegerField(default=0)

username = CharField(max_length=20)

password = PasswordField(default='')

ctime = TimeStampField()

today = DateField(default=datetime.date(datetime.today()))

now = TimeField(default=datetime.today())

secret = BlobField(default='')

gender = GenderField()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值