不要在主文件中定义
我是Python的新手。我正在使用Peewee ORM和Bottle进行一个项目。
我的models.py文件定义了我的模型。我的"db"变量是在我的主文件(index.py)中定义的。我想在下面的BaseModel Meta内部类中使用全局来访问同一个"db"实例。
from peewee import *
import settings
class BaseModel(Model):
global db
class Meta:
global db
database = db
class Account(BaseModel):
created_ip = CharField(null=True)
created_on = DateTimeField()
当我尝试运行代码时,我得到了下面的错误
Traceback (most recent call last):
File "index.py", line 11, in <module>
from models import Account, Crawl, Site, Url
File "/api/models.py", line 4, in <module>
class BaseModel(Model):
File "/api/models.py", line 7, in BaseModel
class Meta:
File "/api/models.py", line 9, in Meta
database = db
NameError: name 'db' is not defined
我可以访问内部类中的全局"db"吗?有没有更简单的方法可以在另一个文件中使用全局"db"实例?
感谢
db
数据库实例。将其与models.py
中的模型一起保存。而且,根据文档,建议使用基本模型,该模型将定义database
"meta"属性:
db = SqliteDatabase('my_app.db')
class BaseModel(Model):
class Meta:
database = db
class User(BaseModel):
username = CharField()