如何访问python内部类中的全局变量



我是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()

相关内容

  • 没有找到相关文章

最新更新