Почему моя программа на python не выводит желаемые результаты из SQL-запроса? - PullRequest
0 голосов
/ 29 декабря 2018

Я пишу свою программу на Python, используя IDLE, и всякий раз, когда я запускаю

python3 [myfilename]

в моем терминале, он не выводит то, что должен выводиться из запроса SQL, который я сделал.

Я пытался увидеть, была ли проблема с этими двумя строками:

c = db.cursor()
c.execute("select content time from posts order by time desc")

и предположил, что, возможно,

db.cursor() = c
db.cursor(execute("select * from posts))
posts = db.fetchall()

print(add_post());

действительно что-то добавит, но я не получаю вывод!По сути, я хочу, чтобы он распечатывал что-нибудь из моей базы данных.

def get_posts():
    db = psycopg2.connect(database="forum")
    c = db.cursor()
    c.execute("select content, time from posts order by time desc")
    posts = c.fetchall()
    db.close()

get_posts()
print(get_posts)

Я ожидаю, что мой вывод будет печатать любые данные в терминале, но запуск файла на самом деле ничего не печатает.Пожалуйста, помогите!


РЕДАКТИРОВАТЬ: моя новая ошибка в IDLE: «Сервер работает локально и принимает соединения через сокет домена Unix», может кто-нибудь помочь мне с этим здесь?

1 Ответ

0 голосов
/ 29 декабря 2018

Вам нужно что-то вернуть из функции get_posts.Поскольку вы печатаете, функция объект get_posts, который будет выглядеть примерно так: <function get_post at 0x7f42d60bcf28>

Вы могли бы выглядеть примерно так:

def get_posts():
    db = psycopg2.connect(database="forum")
    c = db.cursor()
    c.execute("""select content, time from posts order by time desc""")
    posts = c.fetchall()
    db.close()
    # Return a value
    return posts

# Call the function and assign the return value to a variable
the_posts = get_posts()
# Print the variable
print(the_posts)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...