Почему мои таблицы не отображаются в списке командой .table?

Я пытаюсь подключиться к базе данных SQLite через Flask-sqlalchemy. Я открыл командную строку, в которой сохранен файл dbconnect.py, содержащий from dbconnect import app, db,Connect и db.create_all(). Затем я открыл sqlite3.exe (там же, где находится файл Python) и выполнил db.connect и .tables.

Я ожидал, что таблица Connect появится в списке, но ничего не появилось. Однако я вижу данные в коде Visual Studio. Где я ошибаюсь?

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.connect'
db = SQLAlchemy(app)

class Connect(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(20),nullable = False)

with app.app_context():
    db.create_all()
    entry = Connect(name = "Apple")
    db.session.add(entry)
    db.session.commit()
    dbdata = Connect.query.all()
    print(dbdata[0])


if __name__ == '__main__':
    app.run(debug = True)

Вы уверены, что ищете в нужном месте?

snakecharmerb 26.06.2024 16:19

подсказка: найдите на своем диске все файлы db.connect, скорее всего, вы просто создаете новую db.connect базу данных с помощью команды sqlite3.exe и не открываете существующую, которую хотели.

jhole 26.06.2024 16:23

Отвечает ли это на ваш вопрос? db.create_all() не создает базу данных в нужном каталоге

Detlef 26.06.2024 17:37

@jhole Я не правильно это понял. извини. Можете ли вы помочь мне еще немного, пожалуйста?

APARNA 27.06.2024 12:18

[{'id': 1, 'name': 'Apple'}] Это данные, которые я получаю из базы данных при печати в терминале. Это значит, что есть стол, верно? Кажется, код тоже в порядке. Если я выберу * из имени таблицы в sqlite3, он скажет, что таблица с таким именем таблицы не существует.

APARNA 27.06.2024 12:20
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используете ли вы команду .mode column? Документ командной строки

В Windows двойной щелчок sqlite3.exe открывает оболочку командной строки. чем в оболочке использовать точечные команды, например:

sqlite> .open c:\your_path\databasename.db # connect your existing database
sqlite> .tables # will show you the existing tables list.
sqlite> .mode column # set the table format for output
sqlite> select * from your_tablename;

Я понял. большое спасибо! :) @Германн

APARNA 01.07.2024 13:54

Другие вопросы по теме