Dr_Elvis
@Dr_Elvis
В гугле забанен

Как лучше производить транзакции?

Есть приложение на flask.
В нем пользуюсь Postgres как БД через psycopg2
запускаю приложение с пулом:
app.config['postgreSQL_pool'] = psycopg2.pool.SimpleConnectionPool(1, 20,user = db_user,
                                                  password = db_pass,
                                                  host = db_host,
                                                  port = db_port,
                                                  database = db_name)
@app.teardown_appcontext
def close_conn(e):
    db = g.pop('db', None)
    if db is not None:
        app.config['postgreSQL_pool'].putconn(db)

def get_db():
    if 'db' not in g:
        g.db = app.config['postgreSQL_pool'].getconn()
    return g.db


Правильнее создавать один коннект и на каждую выгрузку или один коннект на все выгрузки?
s = "select * from table where arr=%s"
data = (my_arr,)
conn = get_db()
c = conn.cursor()
c.execute(s, data)
data = c.fetchone()
c.close()

s = "select * from table2 where arr2=%s"
data = (my_arr2,)
conn = get_db()
c = conn.cursor()
c.execute(s, data)
data2 = c.fetchone()
c.close()

Или:
conn = get_db()
c = conn.cursor()

s = "select * from table where arr=%s"
data = (my_arr,)
c.execute(s, data)
returndata = c.fetchone()

s = "select * from table2 where arr2=%s"
data = (my_arr2,)
c.execute(s, data)
returndata2 = c.fetchone()

c.close()
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы