簡體   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