-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathsession_context.py
32 lines (30 loc) · 1.06 KB
/
session_context.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from contextlib import contextmanager
from sqlite3 import IntegrityError
#from sqlalchemy.exc import IntegrityError
#import sqlite3
from flask import render_template
import sqlalchemy
from alabar.models import db
#from sqlalchemy.exc import DBAPIError
@contextmanager
def transactional_session():
session = db.session
try:
yield session
session.commit()
except (IntegrityError,AttributeError):
#except (IntegrityError,AttributeError,sqlalchemy.exc.IntegrityError):
#except (IntegrityError as error_IntegrityError,AttributeError as error_AttributeError,sqlalchemy.exc.IntegrityError as error_duplicados):
#except (IntegrityError,AttributeError,sqlite3.IntegrityError,sqlalchemy.exc.IntegrityError,DBAPIError as e):
#except DBAPIError as DBAPIError:
session.rollback()
#print("Error de duplicados:", error_duplicados)
#print("Error de la DBAPI:", DBAPIError.orig)
#raise
# result = False
# return result
#else:
# result = True
# return result
finally:
session.close()