Что не так с настройкой и интеграцией python и созданной базы данных с использованием Sqlite? - PullRequest
0 голосов
/ 29 мая 2020

Я использую python 3.5.2 и SQLite 3 для создания базы данных и таблицы с помощью оболочки. Я использовал следующий код:

import sqlite3 conn = sqlite3.connect ('TestDB.db');

c = conn.cursor ()

c .execute ('' 'CREATE TABLE CLIENTS ([generated_id] INTEGER PRIMARY KEY, [Client_Name] text)' '';

И, похоже, он работает, потому что у меня нет ошибок и программа создает файл базы данных в точности с указанными выше характеристиками. Файл существует в каталоге «C: \ Python», но когда я хочу манипулировать файлом через SQLite на CMD с помощью следующих команд:

.open C: \ Python \ TestDB.db

.database

Это дает мне вывод:

main: C: WINDOWS \ system32 \ PythonTestDb.db

Однако обычно, как и другие, должно было быть так:

main: C: \ Python \ TestDB.db

Однако файл даже не существует в следующем каталоге System32! Из-за этой miss_configuration я не могу управлять данными в таблице и это дает мне ошибку:

«Нет такой таблицы: КЛИЕНТЫ»

1 Ответ

2 голосов
/ 29 мая 2020

Из документации SQLite в его оболочке командной строки , раздел 2:

Вы можете использовать полный путь, чтобы убедиться, что файл находится в каталоге, который вы думаю, что это внутри. Используйте косую черту в качестве символа разделителя каталогов. Другими словами, используйте «c: / work / ex1.db», а не «c: \ work \ ex1.db».

Таким образом, попробуйте

.open C:/Python/TestDB.db

(Примечание: тот факт, что Python и TestDB.db были объединены в имени файла, был подарком. Каталог C:WINDOWS\system32\, вероятно, является рабочим каталогом по умолчанию, в котором выполняется или, возможно, находится sqlite.exe.
В большинстве программ и связанных с ним вещей backsla sh зарезервирована для экранирования (специальных) символов. Ни P, ни T не являются специальными, поэтому они были заменены их фактическим значением, в результате чего получилось PythonTestDB.db.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...