Psycopg2 connect () TypeError - PullRequest
       30

Psycopg2 connect () TypeError

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

Привет! Я пытаюсь подключиться к своей базе данных, как всегда.Раньше я делал это, и все работало нормально, я также создал эту базу данных. Если я делаю то же самое в python Terminal - все работает - я могу легко подключиться к своей базе данных и выполнить свои sql-запросы.Мой код:

from psycopg2 import connect

def create_connection():
    cnx = connect(
    user="postgres",
    password="*******",
    host="localhost",
    dbname="exercises_db")

    cnx.autocommit = True 
    cursor = cnx.cursor() 

    return (cnx, cursor)

def close_connection(cnx, cursor):
    cursor.close()
    cnx.close()


def create_tables():
    cnx, cursor = connect()   

    customers = '''
    CREATE TABLE customers (
     customer_id serial,
     name varchar(255), 
     surname varchar(255),
     PRIMARY KEY(customer_id)
    );
    '''
    cursor.execute(customers)

   orders = '''
    CREATE TABLE orders (
     order_id serial,
     customer_id  int REFERENCES customers(customer_id), 
     description text,
     PRIMARY KEY(order_id)
     FOREIGN KEY(customer_id)

    );
     '''

     cursor.execute(orders)

     products = '''
       CREATE TABLE products (
        product_id serial,
        name varchar(255),
        price decimal(5, 2)
        PRIMARY_KEY(product_id)
       );
        '''

    cursor.execute(products)

    close_connection(cnx, cursor)


 create_tables()

И результат:

Traceback (most recent call last):
 File "A1_1.py", line 65, in <module>
 create_tables()
 File "A1_1.py", line 26, in create_tables
 cnx, cursor = connect()   
 File "A1_1.py", line 20, in connect
 cnx = connect( host="localhost", database="exercises_db")
TypeError: connect() got an unexpected keyword argument 'host'

1 Ответ

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

На самом деле я наконец нашел проблему - я ссылаюсь на функцию connect (), которая не существует, я должен написать: cnx, cursor = create_connection() Позже я также обнаружил некоторые другие ошибки, такие как PRIMARY_KEY вместо PRIMARY KEY.Теперь я наконец-то успешно добавил базы данных.Извините за потраченное время, ребята:)

...