Как вернуть список таблиц в базе данных? - PullRequest
0 голосов
/ 24 ноября 2018

Напишите функцию с именем "get_records", которая не принимает никаких параметров.База данных сохранена в файле с именем «apologize.db», содержащем таблицу с именем «иностранец» со столбцами «подтверждение», «горсть» и «химия».Вернуть список, содержащий все записи в таблице «иностранец».

import sqlite3
def get_records():
    conn = sqlite3.connect("apologize.db")
    c = conn.cursor()
    c.execute('INSERT INTO foreigner VALUES (
                    "confirm",
                    "handful",
                    "chemistry")')
    conn.commit()
    conn.close()

Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 24 ноября 2018

Вы используете INSERT, начните с НЕ ВЫБРАТЬ, начните там ... Просмотрите ваш код, после чего посмотрите, куда идти nex

0 голосов
/ 24 ноября 2018

Вместо того, чтобы тратить несколько часов на изучение решения этой конкретной проблемы с SQL, я предлагаю вам подписать несколько часов на изучение ORM, подобного sqlalchemy , и вам больше никогда не придется писать SQL.

from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Foreigner(Base):
    __tablename__ = 'foreigner'
    id = Column(Integer, primary_key=True)
    confirm = Column(String(250), nullable=False)
    handful = ...
    chemistry = ...

records = Foreigner.query.all()
0 голосов
/ 24 ноября 2018

Из того, что говорит ваш вопрос, я полагаю, что вы ищете что-то похожее на следующее.

def get_records():
    conn = sqlite3.connect("apologize.db")
    conn.row_factory = lambda cursor, row: row[0]
    c = conn.cursor()
    confirm_list = c.execute('SELECT confirm FROM foreigner').fetchall()
    handful_list = c.execute('SELECT handful FROM foreigner').fetchall()
    chemistry_list = c.execute('SELECT chemistry FROM foreigner').fetchall()
    conn.close()
    return [confirm_list, handful_list, chemistry_list]

Или

def get_records():
    conn = sqlite3.connect("apologize.db")
    conn.row_factory = lambda cursor, row: row[0]
    c = conn.cursor()
    confirm_list = c.execute('SELECT confirm FROM foreigner').fetchall()
    handful_list = c.execute('SELECT handful FROM foreigner').fetchall()
    chemistry_list = c.execute('SELECT chemistry FROM foreigner').fetchall()
    conn.close()
    return [list(x) for x in zip(confirm_list, handful_list, chemistry_list)]

Приветствия!

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