Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 新数据库拒绝在web2py appadmin中显示_Python_Database_Web2py - Fatal编程技术网

Python 新数据库拒绝在web2py appadmin中显示

Python 新数据库拒绝在web2py appadmin中显示,python,database,web2py,Python,Database,Web2py,我正在试验一种新的博客数据库设计,我想在web2py的管理界面上运行一些测试 我首先从web2py的管理界面创建了一个名为newblog的新web2py应用程序。 接下来,我创建了newblog/models/appdb.py,如下所示 然后我浏览了网站的管理界面https://172.25.1.1/newblog/appadmin/index 确保数据库已创建 我检查了文件系统和数据库/newblog.db有一个全新的创建时间 我点击appadmin菜单查看我的新数据库:web2py>This

我正在试验一种新的博客数据库设计,我想在web2py的管理界面上运行一些测试

我首先从web2py的管理界面创建了一个名为newblog的新web2py应用程序。 接下来,我创建了newblog/models/appdb.py,如下所示 然后我浏览了网站的管理界面https://172.25.1.1/newblog/appadmin/index 确保数据库已创建 我检查了文件系统和数据库/newblog.db有一个全新的创建时间 我点击appadmin菜单查看我的新数据库:web2py>This App>database 问题:问题是我在newblog的数据库管理界面中没有看到它。我在appadmin界面中看到了其他空的web2py数据库,所以我不明白为什么我的数据库没有显示在那里

问:这是预期的行为吗?如果是这样,我需要采取哪些最基本的步骤才能让我的web2py数据库显示在appadmin中

"""
newblog/models/appdb.py
"""
def build_new_table():
    return dict({'ugly_dict': 42})

db = DAL('sqlite://newblog.db')

## Build a table of tables, by the type of table (i.e. post, code, etc)
db.define_table('db_type',
    Field('name', length=32, notnull=True, unique=True,
        comment="Name of the database table"),

    #IS_IN_DB(db, 'db.%s.name' % db.db_type.name)),
    Field('database_pointer', notnull=True, unique=True,
        compute=build_new_table(),
        comment="Reference to the database table identified by 'name'",
        ),
    )

## Define tags for the database items
db.define_table('tags',
    Field('name', length=32, notnull=True, unique=True),
    )

听起来,除了自定义的appdb.py文件之外,您还有一个默认的db.py文件。注意,模型文件是按字母顺序执行的,因此db.py在文件之后执行。db.py为变量db分配不同的数据库连接,因此只有该数据库显示在appadmin中。您应该为两组表使用相同的数据库,或者为两个数据库连接对象使用不同的变量。例如,在appdb.py中,您可以执行以下操作:

blogdb=DAL'sqlite:\\newblog.db'


如果您想对所有表使用相同的数据库,那么只需在本例中的第一个文件appdb.py中定义DAL对象,您可以在所有后续模型文件中引用它,而不必重新定义它。

web2py>this App>数据库应该带您去-您在这两种情况下看到相同的东西吗?如果是,你看到了什么?我尝试了你的代码,它对我来说很好。@Anthony,我将转到你提到的链接。但是,我只看到默认数据库:db.auth_用户、db.auth_组、db.auth_成员资格、db.auth_权限、db.auth_事件、db.auth_cas;甚至在我在浏览器上点击“重新加载”之后。这很混乱,因为数据库是创建的。我尝试过从文件系统中删除它几次,每次都被重新创建;但是,该数据库不会显示在newblog的可用数据库列表中