Fixed bug closing connections to sql server
This commit is contained in:
parent
8928c3e307
commit
6161ea2c3e
5 changed files with 91 additions and 70 deletions
|
|
@ -115,7 +115,13 @@ def get_session():
|
|||
if os.path.isfile(path_cookie):
|
||||
|
||||
with open(path_cookie) as f:
|
||||
s=json.loads(f.read())
|
||||
|
||||
json_txt=f.read()
|
||||
|
||||
if(json_txt).strip()!='':
|
||||
s=json.loads(json_txt)
|
||||
else:
|
||||
s={'token': cookie}
|
||||
else:
|
||||
s={'token': cookie}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,40 +19,43 @@ class SqlClass:
|
|||
# Sql connection
|
||||
self.conn=None
|
||||
self.connected=False
|
||||
#self.connection_method=self.connect_to_db_sql
|
||||
self.caching=False
|
||||
|
||||
try:
|
||||
def getconn():
|
||||
return MySQLdb.connect(connection['host'],
|
||||
user=connection['user'],
|
||||
passwd=connection['password'],
|
||||
db=connection['db'],
|
||||
charset='utf8mb4',
|
||||
cursorclass=MySQLdb.cursors.DictCursor)
|
||||
def connect(self):
|
||||
|
||||
if SqlClass.mypool==None:
|
||||
SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size)
|
||||
if self.conn==None:
|
||||
try:
|
||||
def getconn():
|
||||
return MySQLdb.connect(self.connection['host'],
|
||||
user=self.connection['user'],
|
||||
passwd=self.connection['password'],
|
||||
db=self.connection['db'],
|
||||
charset='utf8mb4',
|
||||
cursorclass=MySQLdb.cursors.DictCursor)
|
||||
|
||||
self.conn=SqlClass.mypool.connect()
|
||||
if SqlClass.mypool==None:
|
||||
SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size)
|
||||
|
||||
self.conn.ping(True)
|
||||
self.conn=SqlClass.mypool.connect()
|
||||
|
||||
self.connected=True
|
||||
self.conn.ping(True)
|
||||
|
||||
except:
|
||||
e = sys.exc_info()[0]
|
||||
v = sys.exc_info()[1]
|
||||
self.connected=True
|
||||
|
||||
self.error_connection="Error in connection: %s %s" % (e, v)
|
||||
except:
|
||||
e = sys.exc_info()[0]
|
||||
v = sys.exc_info()[1]
|
||||
|
||||
self.error_connection="Error in connection: %s %s" % (e, v)
|
||||
|
||||
raise NameError(self.error_connection)
|
||||
|
||||
#return False
|
||||
raise NameError(self.error_connection)
|
||||
|
||||
#Make def query more simple if not debugging.
|
||||
|
||||
def query(self, sql_query, arguments=[], name_connection="default"):
|
||||
|
||||
self.connect()
|
||||
|
||||
#if fetch_type=="ASSOC":
|
||||
#fetch_type=MySQLdb.cursors.DictCursor
|
||||
|
||||
|
|
@ -83,17 +86,19 @@ class SqlClass:
|
|||
#def fetch(self, cursor):
|
||||
|
||||
#return cursor.fetchone()
|
||||
"""
|
||||
|
||||
def __del__(self):
|
||||
|
||||
self.close()
|
||||
"""
|
||||
if self.conn:
|
||||
|
||||
self.conn.close()
|
||||
|
||||
def close(self, name_connection="default"):
|
||||
|
||||
if self.conn:
|
||||
|
||||
self.conn.close()
|
||||
#self.conn=False
|
||||
self.conn=None
|
||||
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -20,40 +20,43 @@ class SqlClass:
|
|||
# Sql connection
|
||||
self.conn=None
|
||||
self.connected=False
|
||||
#self.connection_method=self.connect_to_db_sql
|
||||
self.caching=False
|
||||
|
||||
try:
|
||||
def getconn():
|
||||
return pymysql.connect(connection['host'],
|
||||
user=connection['user'],
|
||||
passwd=connection['password'],
|
||||
db=connection['db'],
|
||||
charset='utf8mb4',
|
||||
cursorclass=pymysql.cursors.DictCursor)
|
||||
def connect(self):
|
||||
|
||||
if SqlClass.mypool==None:
|
||||
SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size)
|
||||
if self.conn==None:
|
||||
try:
|
||||
def getconn():
|
||||
return pymysql.connect(self.connection['host'],
|
||||
user=self.connection['user'],
|
||||
passwd=self.connection['password'],
|
||||
db=self.connection['db'],
|
||||
charset='utf8mb4',
|
||||
cursorclass=pymysql.cursors.DictCursor)
|
||||
|
||||
self.conn=SqlClass.mypool.connect()
|
||||
if SqlClass.mypool==None:
|
||||
SqlClass.mypool=pool.QueuePool(getconn, max_overflow=self.max_overflow, pool_size=self.pool_size)
|
||||
|
||||
self.conn.ping(True)
|
||||
self.conn=SqlClass.mypool.connect()
|
||||
|
||||
self.connected=True
|
||||
self.conn.ping(True)
|
||||
|
||||
except:
|
||||
e = sys.exc_info()[0]
|
||||
v = sys.exc_info()[1]
|
||||
self.connected=True
|
||||
|
||||
self.error_connection="Error in connection: %s %s" % (e, v)
|
||||
except:
|
||||
e = sys.exc_info()[0]
|
||||
v = sys.exc_info()[1]
|
||||
|
||||
self.error_connection="Error in connection: %s %s" % (e, v)
|
||||
|
||||
raise NameError(self.error_connection)
|
||||
|
||||
#return False
|
||||
raise NameError(self.error_connection)
|
||||
|
||||
#Make def query more simple if not debugging.
|
||||
|
||||
def query(self, sql_query, arguments=[], name_connection="default"):
|
||||
|
||||
self.connect()
|
||||
|
||||
#if fetch_type=="ASSOC":
|
||||
#fetch_type=pymysql.cursors.DictCursor
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import re
|
|||
import uuid
|
||||
from importlib import import_module, reload
|
||||
from collections import OrderedDict
|
||||
from paramecio.cromosoma.databases.pymysql import SqlClass
|
||||
from paramecio.cromosoma.databases.mysqldb import SqlClass
|
||||
from paramecio.cromosoma.coreforms import BaseForm, HiddenForm
|
||||
import copy
|
||||
import traceback
|
||||
|
|
@ -141,9 +141,11 @@ class PhangoField:
|
|||
def create_form(self):
|
||||
#self.name, self.default_value,
|
||||
|
||||
self.extra_parameters.insert(0, self.name)
|
||||
self.extra_parameters.insert(1, self.default_value)
|
||||
form=self.name_form(*self.extra_parameters)
|
||||
final_parameters=copy.copy(self.extra_parameters)
|
||||
|
||||
final_parameters.insert(0, self.name)
|
||||
final_parameters.insert(1, self.default_value)
|
||||
form=self.name_form(*final_parameters)
|
||||
form.default_value=self.default_value
|
||||
form.required=self.required
|
||||
form.label=self.label
|
||||
|
|
@ -240,9 +242,11 @@ class WebModel:
|
|||
|
||||
def __init__(self, sqlclass, name_field_id="id"):
|
||||
|
||||
cached=self.global_cached
|
||||
self.cached=self.global_cached
|
||||
|
||||
cached_runquery=self.global_cached
|
||||
self.cached_runquery=self.global_cached
|
||||
|
||||
self.type_cache='file'
|
||||
|
||||
#The name of the table
|
||||
|
||||
|
|
@ -347,7 +351,7 @@ class WebModel:
|
|||
|
||||
self.fields[field_model.name].model=self
|
||||
|
||||
self.fields[field_model.name].required=required
|
||||
#self.fields[field_model.name].required=required
|
||||
|
||||
self.fields[field_model.name].post_register()
|
||||
|
||||
|
|
@ -1071,6 +1075,8 @@ class WebModel:
|
|||
|
||||
def create_forms(self, arr_fields=[]):
|
||||
|
||||
self.forms={}
|
||||
|
||||
if len(arr_fields)==0:
|
||||
arr_fields=list(self.fields.keys())
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,10 @@ for k, v in menu.items():
|
|||
def home(module='', submodule=''):
|
||||
|
||||
# A simple boolean used for show or not the code of admin module in standard template
|
||||
|
||||
connection=WebModel.connection()
|
||||
user_admin=UserAdmin(connection)
|
||||
|
||||
#Fix, make local variable
|
||||
|
||||
t=PTemplate(env)
|
||||
|
|
@ -81,8 +84,6 @@ def home(module='', submodule=''):
|
|||
|
||||
#check if login
|
||||
|
||||
user_admin=UserAdmin(connection)
|
||||
|
||||
s=get_session()
|
||||
|
||||
if check_login():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue