繁体   English   中英

无法从python 3.4.2脚本访问sqlite3数据库

[英]Can't access sqlite3 database from python 3.4.2 scripts

我正在尝试使用称为“ podcasts”的python 3.4.2编写创建sqlite3数据库的操作。 我创建了两个文件:

dbcreate.py:

import sqlite3 as db

conn = db.connect('test.db')
cursor = conn.cursor()
cursor.execute("create table podcasts(name text, hosts text, channel text)")
print("table created")

dbinsert.py:

import sqlite3 as db

conn = db.connect('test.db')
cursor = conn.cursor()
cursor.execute('insert into podcasts values("Invisibilia","NPR", "Lulu Miller and Alix Spiegel")')
cursor.execute('insert into podcasts values("Hanselminutes", "independent", "Scott Hanselman")')
conn.commit()
conn.close()

当我为dbcreate.py运行模块时,它像应有的那样打印了“创建的表”。 但是,当我为dbinsert.py运行模块时,没有任何输出。 因此,然后转到Macbook Air上的命令行,当我进入python3.4 shell并想从命令行访问两个文件时,我得到了:

>>> dbcreate.py
Traceback (most recent call last):
  File "stdin", line 1, in module
NameError: name 'dbcreate' is not defined

和:

>>> dbinsert.py
Traceback (most recent call last):
  File "stdin", line 1, in module
NameError: name 'dbinsert' is not defined

当我尝试在命令行中通过键入.databases从sqlite3访问数据库时,得到:

我不知道如何访问在dbinsert.py中创建的数据库,因此,您能给我任何帮助,我将不胜感激。 谢谢。

您正在尝试从Python Shell中运行.py文件,该文件无法正常工作。 而是从命令行运行

python3 dbcreate.py
python3 dbinsert.py

假设python3指向您安装的Python 3.4.2。 这将执行您的代码,创建.db文件并插入您指定的值。

dbinsert.py将没有输出,因为您不打印任何内容,而只是执行数据库命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM