将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回答

bobby

2019-05-07

uncle_bob.save(force_insert=True)
 这样调用试试,这个问题我会在后面的实战章节中讲解细节的

0
2
bobby
回复
Mmajicc
后面我会讲解这些问题的 你可以先往后看视频
2019-05-08
共2条回复

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2378 学习 · 1158 问题

查看课程