Python peewee接受2个位置参数,但给出了3个

2024-05-19 10:22:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我是学习Python的新手,当然,在下面的代码中,Python-连接到数据库sqlite:

import os
import pewee

baza =  pewee.SqliteDatabase('test.db')

class BazaModel():
 database = baza

class Klasa(BazaModel):
 nazwa =  pewee.CharField(null=False)
 profil =  pewee.CharField(default='')

class Uczen(BazaModel):
 imie =  pewee.CharField(null=False)
 nazwisko =  pewee.CharField(null=False)
 klasa =  pewee.ForeignKeyField(Klasa, related_name='uczniowie')

baza.connect() 
baza.create_tables([Klasa, Uczen], True)

我有一个错误:

baza.create_tables([Klasa, Uczen], True) TypeError: create_tables() takes 2 positional arguments but 3 were given

课程从2016年开始,所以我想有一个更新的peewee版本,但我不知道如何修复它


Tags: 代码importfalsetruetablescreatenullclass
1条回答
网友
1楼 · 发布于 2024-05-19 10:22:40

这3个参数是数据库、表列表和布尔值:some_obj.some_fun(obj1, obj2)被python翻译为some_fun(some_obj, obj1, obj2)。这说明它告诉您有3个位置参数,而不是2个

peewee doc中可以看到,create_表只需要一个额外的位置参数(两个数据库参数)。 您现在使用的第三个参数是关键字参数(不是位置参数),您必须指定它是什么,即您应该写:

baza.create_tables([Klasa, Uczen], safe=True)

相关问题 更多 >

    热门问题