Sqlalchemy 炼金术与我

Sqlalchemy 炼金术与我,sqlalchemy,Sqlalchemy,我喜欢OOP,我很快就了解了SQLAlchemy,我对它非常感兴趣。虽然我是it新手,但有一个问题一个不是真正的问题,但对初学者来说有点恼人的是,即使在导入主模块之后,也必须显式导入每个模块,我的意思是sqlalchemy 我有这个脚本来创建一个新的数据库文件,并在同名数据库已经存在时向我发出警告,但与直接在sqlite3上工作不同,我弄错了 import os import sqlalchemy from sqlalchemy import create_engine from sqlalch

我喜欢OOP,我很快就了解了SQLAlchemy,我对它非常感兴趣。虽然我是it新手,但有一个问题一个不是真正的问题,但对初学者来说有点恼人的是,即使在导入主模块之后,也必须显式导入每个模块,我的意思是sqlalchemy

我有这个脚本来创建一个新的数据库文件,并在同名数据库已经存在时向我发出警告,但与直接在sqlite3上工作不同,我弄错了

import os
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

def CreateDB(dbName=None):
    dbName = 'ABC-DB' # should be the name of the new database file
    db = create_engine('sqlite:///dbName', echo=False) # should be a link from above
    Base.metadata.create_all(db) 
    if os.path.isfile(dbName): # should check for existence
        print('DataBase already exist') # should alert on existence.
我得到的是'dbName'而不是'ABC-DB'。 操作系统路径。。。这是一个死剧本,因为它什么也不做


有人请帮忙。

正确,它完全按照你的吩咐做了:

db = create_engine('sqlite:///dbName', echo=False) # should be a link from above
你想要:

db = create_engine('sqlite:///' + dbName, echo=False) # should be a link from above

正确,它完全按照你告诉它的做了:

db = create_engine('sqlite:///dbName', echo=False) # should be a link from above
你想要:

db = create_engine('sqlite:///' + dbName, echo=False) # should be a link from above