将name设置为primary_key,发现插入数据无效!怎么做?
来源:14-4 peewee自动生成表_1

Mmajicc
2019-05-06
下面是我的代码
#!/usr/bin/env python
#-*-coding:utf-8 -*-
from peewee import *
# 第一个参数为数据库名
db = MySQLDatabase('spider',host="127.0.0.1", port=3306, user="root", password="root" )
class Person(Model):
# 不设置primary_key自动创建id主键,且字段默认非空,须设置null属性
name = CharField(max_length=30, primary_key=True)
# id = IntegerField() 若重写id字段,则即使没有设置主键也不会自动设置id字段
birthday = DateField()
class Meta:
database = db # This model uses the "people.db" database.
# table_name不设置默认表名为类小写形式,此处即person
db_table = "users"
# 数据的增删改查
if __name__ == "__main__":
# 列表形式传入参数,参数为类名
# db.create_tables([Person])
from datetime import date
# 生成数据
uncle_bob = Person(name='Bob', birthday=date(1960, 1, 15))
uncle_bob.save() # bob is now stored in the database
我一开始没有注释db.create_tables([Person]),成功创建表后,主键也如愿设置成了name,可是在插入数据的时候,发现代码运行没有任何异常,但是数据库刷新,一直没看到新生成的记录,仿佛save方法没成功一样,不知道此时该如何生成数据?求老师指导!!!
写回答
1回答
-
uncle_bob.save(force_insert=True)
这样调用试试,这个问题我会在后面的实战章节中讲解细节的022019-05-08
相似问题