#python-3.x #postgresql
#python-3.x #postgresql
Вопрос:
Как подключиться к локальному серверу Postgresql и создать базу данных из настольного приложения Python
мой код :
import psycopg2
conn_string = "host='localhost' dbname='database' user='root' password='root'"
conn = psycopg2.connect(conn_string)
print("Database opened successfully")
conn.close()
print("Database Closed successfully")
Комментарии:
1. С каким вопросом вы столкнулись?
2. К вашему сведению, параметры, заключенные в одинарные кавычки, не нужны.
Ответ №1:
Вы можете поместить эти строки после подключения к БД (после строки № 4).
cursor = conn.cursor();
cursor.execute("create database my_new_database");
Полный код будет выглядеть
import psycopg2
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
conn_string = "host='localhost' dbname='postgres' user='root' password='root'"
conn = psycopg2.connect(conn_string)
conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT);
print("Database opened successfully")
cursor = conn.cursor();
cursor.execute("create database my_new_database");
conn.close()
conn_string = "host='localhost' dbname='my_new_database' user='root' password='root'"
conn = psycopg2.connect(conn_string)
# here you need to populate database wit tables "create table mytbl..."
conn.close()
print("Database Closed successfully")
Комментарии:
1. Но сначала он подключается к базе данных Не так, как я хочу, я хочу, чтобы при установке приложения Python Desktop, которое я создал, оно подключалось к серверу postgresql, а затем создавало базу данных из самой программы
2. @siliapps сначала вы можете подключиться к базе данных «postgres» (postgres является основной базой данных по умолчанию), а затем создать свою базу данных «my_new_database». После этого вы можете отключиться от базы данных «postgres» и подключиться к «my_new_database».
3. У меня это не сработало, можете ли вы написать код упорядоченным образом, начиная с, import psycopg2
4. Вот сообщение об ошибке ==> База данных успешно открыта для отслеживания (последний последний вызов): строка 8, в <module> cursor.execute («создать базу данных odooo»); psycopg2.errors. ActiveSqlTransaction: СОЗДАНИЕ БАЗЫ ДАННЫХ не может выполняться внутри блока транзакции
5. Вам нужно установить флаг автоматической фиксации, я только что отредактировал ответ.