Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Can';t在python中通过sqlalchemy从postgresql创建表_Python_Postgresql_Sqlalchemy - Fatal编程技术网

Can';t在python中通过sqlalchemy从postgresql创建表

Can';t在python中通过sqlalchemy从postgresql创建表,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,我试图通过python中的sqlalchemy在postgresql中创建一个表。编码执行时没有返回任何错误,但无法创建表。下面是代码,我非常感谢您的帮助。谢谢大家! 导入操作系统 从sqlalchemy导入创建引擎 从sqlalchemy.orm导入作用域的_会话,sessionmaker 数据库URL=”postgres://wzmsxnmxhimb....." 引擎=创建引擎(os.getenv(“数据库URL”)) db=作用域_会话(sessionmaker(bind=engine))

我试图通过python中的sqlalchemy在postgresql中创建一个表。编码执行时没有返回任何错误,但无法创建表。下面是代码,我非常感谢您的帮助。谢谢大家!

导入操作系统
从sqlalchemy导入创建引擎
从sqlalchemy.orm导入作用域的_会话,sessionmaker
数据库URL=”postgres://wzmsxnmxhimb....."
引擎=创建引擎(os.getenv(“数据库URL”))
db=作用域_会话(sessionmaker(bind=engine))
def main():
execute(“创建表簿(id序列主键,isbn整数不为NULL,title VARCHAR不为NULL,author VARCHAR不为NULL,year INTEGER不为NULL)”)
db.commit
打印(“完成”)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
更新 永远不会执行
main()
,因为从未满足if语句。尝试更改为:

if __name__ == "__main__":
    main()
此外,您的报价使用
数据库\u URL
作为字符串,而不是变量,请将此行更改为以下内容:

engine = create_engine(os.getenv(DATABASE_URL))
如果问题仍然存在,请在
main()
中添加一个
try/except
,以查看结果:

def main():
    try:
        db.execute("CREATE TABLE books (id SERIAL PRIMARY KEY,isbn INTEGER NOT NULL,title VARCHAR NOT NULL,author VARCHAR NOT NULL,year INTEGER NOT NULL)")
        db.commit
        print ("done")
    except Exception as exc:
        print(exc)

由于名称
name
尚未定义,因此执行时不应没有错误。谢谢!再次运行该文件并得到错误:回溯(上次调用):文件“create.py”,第7行,在engine=create_engine(os.getenv(“DATABASE_URL”))文件“C:\Users\green\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\sqlalchemy\engine_init.py”,第479行,在create_engine return strategy.create(*args,**kwargs)下半部分文件“C:\Users\green\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\sqlalchemy\engine\strategies.py”中,第56行,在create plugins=u.实例化_plugins(kwargs)AttributeError:“非类型”对象没有属性“\u实例化\u插件”我使用设置数据库\u URL=postgres://wzm... 在命令提示符下,将数据库URL作为字符串部分删除到.py中,然后再次运行.py。像以前一样,所有操作都会执行并返回“完成”,但没有创建任何表。@Cheryl添加try/except以查看数据库返回的结果,如上图所示。尝试上面的代码,它将返回“完成”。这是否意味着与db的连接已成功建立?