Traceback Switch to copy-and-paste view
-
/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py, line 279, in ensure_connection"""Guarantee that a connection to the database is established."""
if self.connection is None:
if self.in_atomic_block and self.closed_in_transaction:
raise ProgrammingError(
"Cannot open a new connection in an atomic block."
)
with self.wrap_database_errors:
self.connect()
…
# ##### Backend-specific wrappers for PEP-249 connection methods #####
def _prepare_cursor(self, cursor):
"""
Validate the connection is usable and perform database cursor wrapping.
Local vars
Variable Value self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py, line 26, in innerget_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)
…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Local vars
Variable Value args (<DatabaseWrapper vendor='mysql' alias='default'>,)
func <function BaseDatabaseWrapper.connect at 0x7f1de0054f70>
kwargs {}message 'You cannot call this from an async context - use a thread or sync_to_async.'
-
/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py, line 256, in connectself.close_at = None if max_age is None else time.monotonic() + max_age
self.closed_in_transaction = False
self.errors_occurred = False
# New connections are healthy.
self.health_check_done = True
# Establish the connection
conn_params = self.get_connection_params()
self.connection = self.get_new_connection(conn_params)
…
self.set_autocommit(self.settings_dict["AUTOCOMMIT"])
self.init_connection_state()
connection_created.send(sender=self.__class__, connection=self)
self.run_on_commit = []
Local vars
Variable Value conn_params {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}max_age 0
self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py, line 26, in innerget_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)
…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Local vars
Variable Value args (<DatabaseWrapper vendor='mysql' alias='default'>, {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'})func <function DatabaseWrapper.get_new_connection at 0x7f1ddfed8ee0>
kwargs {}message 'You cannot call this from an async context - use a thread or sync_to_async.'
-
/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py, line 256, in get_new_connection)
self.isolation_level = isolation_level
kwargs.update(options)
return kwargs
@async_unsafe
def get_new_connection(self, conn_params):
connection = Database.connect(**conn_params)
…
# bytes encoder in mysqlclient doesn't work and was added only to
# prevent KeyErrors in Django < 2.0. We can remove this workaround when
# mysqlclient 2.1 becomes the minimal mysqlclient supported by Django.
# See https://github.com/PyMySQL/mysqlclient/issues/489
if connection.encoders.get(bytes) is bytes:
connection.encoders.pop(bytes)
Local vars
Variable Value conn_params {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/MySQLdb/__init__.py, line 121, in Connectreturn bytes(x)
def Connect(*args, **kwargs):
"""Factory function for connections.Connection."""
from MySQLdb.connections import Connection
return Connection(*args, **kwargs)
…
connect = Connection = Connect
__all__ = [
"BINARY",
Local vars
Variable Value Connection <class 'MySQLdb.connections.Connection'>
args ()
kwargs {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'} -
/usr/local/lib/python3.10/site-packages/MySQLdb/connections.py, line 195, in __init__if multi_statements:
client_flag |= CLIENT.MULTI_STATEMENTS
kwargs2["client_flag"] = client_flag
# PEP-249 requires autocommit to be initially off
autocommit = kwargs2.pop("autocommit", False)
super().__init__(*args, **kwargs2)
…
self.cursorclass = cursorclass
self.encoders = {k: v
for k, v in conv.items()
if type(k) is not int # noqa: E721
}
Local vars
Variable Value CLIENT <module 'MySQLdb.constants.CLIENT' from '/usr/local/lib/python3.10/site-packages/MySQLdb/constants/CLIENT.py'>
FIELD_TYPE <module 'MySQLdb.constants.FIELD_TYPE' from '/usr/local/lib/python3.10/site-packages/MySQLdb/constants/FIELD_TYPE.py'>
__class__ <class 'MySQLdb.connections.Connection'>
_bytes_or_str ((128, <class 'bytes'>), (None, <class 'str'>))
args ()
autocommit False
charset 'utf8'
client_flag 196610
collation ''
conv {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}conv2 {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}conversions {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function TimeDelta_or_None at 0x7f1de0057d90>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}cursorclass <class 'MySQLdb.cursors.Cursor'>
k 245
kwargs {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}kwargs2 {'charset': 'utf8', 'client_flag': 196610, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}multi_statements True
self <_mysql.connection open to '(null)' at 0x7f1d842e6f50>
sql_mode ''
use_unicode True
v <class 'bytes'>
The above exception ((1040, 'Too many connections')) was the direct cause of the following exception:
-
/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py, line 55, in innerreturn inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request)
…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Local vars
Variable Value exc OperationalError(1040, 'Too many connections')
get_response <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f1de030cd30>>
request <WSGIRequest: GET '/insights/company/?company=singapore%20wefic%20ocean%20technologies%20pte.%20ltd.'>
-
/usr/local/lib/python3.10/site-packages/django/core/handlers/base.py, line 197, in _get_responseif response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Local vars
Variable Value callback <function company at 0x7f1dab97ba30>
callback_args ()
callback_kwargs {}middleware_method <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>>
request <WSGIRequest: GET '/insights/company/?company=singapore%20wefic%20ocean%20technologies%20pte.%20ltd.'>
response None
self <django.core.handlers.wsgi.WSGIHandler object at 0x7f1de030cd30>
wrapped_callback <function company at 0x7f1dab97ba30>
-
/usr/src/app/insights/views.py, line 3360, in companycontext['registrationCompleted'] = getUserRegistration(request)
except:
print(traceback.format_exc())
context['registrationCompleted'] = False
return render(request, 'insights/company.html', context)
if not context['authenticated']:
context['unauthSearches'] = getSearches(request,'company')
…
if context['unauthSearches'] >= 4:
return render(request, 'insights/company.html', context)
#TEAM/COMPANY UNLOCKED POSITIONS MANAGEMENT
try:
context['remainingPurchases'],context['payCreditsDate'],context['userPlanLimit'] = getRemPurchases(request)
Local vars
Variable Value context {'authenticated': False, 'env': 'PROD', 'next': '/insights/company/?company=singapore wefic ocean technologies pte. ' 'ltd.', 'notifications': {'new': None, 'res': None}, 'registrationCompleted': False, 'salaryData': [], 'search': {'company': 'singapore wefic ocean technologies pte. ltd.', 'companyData': {}, 'companyDepts': [], 'companyMap': [], 'latestJobs': [], 'totalDepts': 0}, 'section': 'analyzeCompetitors', 'unlocked': False}request <WSGIRequest: GET '/insights/company/?company=singapore%20wefic%20ocean%20technologies%20pte.%20ltd.'>
-
/usr/src/app/insights/backend/helpers.py, line 270, in getSearchesdef removeDiacritics(text):
return ''.join(
c for c in unicodedata.normalize('NFKD', text) if not unicodedata.combining(c))
def getSearches(request,method):
if not request.session.session_key:
request.session.save()
…
user_cookie = request.session.session_key
body = {"query":{"bool":{"must":[
{
Local vars
Variable Value method 'company'
request <WSGIRequest: GET '/insights/company/?company=singapore%20wefic%20ocean%20technologies%20pte.%20ltd.'>
-
/usr/local/lib/python3.10/site-packages/django/contrib/sessions/backends/cached_db.py, line 89, in savereturn (
session_key
and (self.cache_key_prefix + session_key) in self._cache
or await super().aexists(session_key)
)
def save(self, must_create=False):
super().save(must_create)
…
try:
self._cache.set(self.cache_key, self._session, self.get_expiry_age())
except Exception:
logger.exception("Error saving to cache (%s)", self._cache)async def asave(self, must_create=False):
Local vars
Variable Value __class__ <class 'django.contrib.sessions.backends.cached_db.SessionStore'>
must_create False
self <django.contrib.sessions.backends.cached_db.SessionStore object at 0x7f147e4ffca0>
-
/usr/local/lib/python3.10/site-packages/django/contrib/sessions/backends/db.py, line 121, in savedef save(self, must_create=False):
"""
Save the current session data to the database. If 'must_create' is
True, raise a database error if the saving operation doesn't create a
new entry (as opposed to possibly updating an existing entry).
"""
if self.session_key is None:
return self.create()
…
data = self._get_session(no_load=must_create)
obj = self.create_model_instance(data)
using = router.db_for_write(self.model, instance=obj)
try:
with transaction.atomic(using=using):
obj.save(
Local vars
Variable Value must_create False
self <django.contrib.sessions.backends.cached_db.SessionStore object at 0x7f147e4ffca0>
-
/usr/local/lib/python3.10/site-packages/django/contrib/sessions/backends/db.py, line 70, in createreturn self.model.objects.filter(session_key=session_key).exists()
async def aexists(self, session_key):
return await self.model.objects.filter(session_key=session_key).aexists()
def create(self):
while True:
self._session_key = self._get_new_session_key()
…
try:
# Save immediately to ensure we have a unique entry in the
# database.
self.save(must_create=True)
except CreateError:
# Key wasn't unique. Try again.
Local vars
Variable Value self <django.contrib.sessions.backends.cached_db.SessionStore object at 0x7f147e4ffca0>
-
/usr/local/lib/python3.10/site-packages/django/contrib/sessions/backends/base.py, line 196, in _get_new_session_keyexcept AttributeError:
return True
def _get_new_session_key(self):
"Return session key that isn't being used."
while True:
session_key = get_random_string(32, VALID_KEY_CHARS)
if not self.exists(session_key):
…
return session_key
async def _aget_new_session_key(self):
while True:
session_key = get_random_string(32, VALID_KEY_CHARS)
if not await self.aexists(session_key):
Local vars
Variable Value self <django.contrib.sessions.backends.cached_db.SessionStore object at 0x7f147e4ffca0>
session_key 'f84wwwd2xqo9k89rzefkdw6w4h0x92iy'
-
/usr/local/lib/python3.10/site-packages/django/contrib/sessions/backends/cached_db.py, line 78, in existsdata = {}return data
def exists(self, session_key):
return (
session_key
and (self.cache_key_prefix + session_key) in self._cache
or super().exists(session_key)
…
)
async def aexists(self, session_key):
return (
session_key
and (self.cache_key_prefix + session_key) in self._cache
Local vars
Variable Value __class__ <class 'django.contrib.sessions.backends.cached_db.SessionStore'>
self <django.contrib.sessions.backends.cached_db.SessionStore object at 0x7f147e4ffca0>
session_key 'f84wwwd2xqo9k89rzefkdw6w4h0x92iy'
-
/usr/local/lib/python3.10/site-packages/django/contrib/sessions/backends/db.py, line 63, in existsreturn self.decode(s.session_data) if s else {}async def aload(self):
s = await self._aget_session_from_db()
return self.decode(s.session_data) if s else {}def exists(self, session_key):
return self.model.objects.filter(session_key=session_key).exists()
…
async def aexists(self, session_key):
return await self.model.objects.filter(session_key=session_key).aexists()
def create(self):
while True:
Local vars
Variable Value self <django.contrib.sessions.backends.cached_db.SessionStore object at 0x7f147e4ffca0>
session_key 'f84wwwd2xqo9k89rzefkdw6w4h0x92iy'
-
/usr/local/lib/python3.10/site-packages/django/db/models/query.py, line 1288, in exists_update.queryset_only = False
def exists(self):
"""
Return True if the QuerySet would have any results, False otherwise.
"""
if self._result_cache is None:
return self.query.has_results(using=self.db)
…
return bool(self._result_cache)
async def aexists(self):
return await sync_to_async(self.exists)()
def contains(self, obj):
Local vars
Variable Value self Error in formatting: OperationalError: (1040, 'Too many connections')
-
/usr/local/lib/python3.10/site-packages/django/db/models/sql/query.py, line 660, in has_resultsq.set_limits(high=1)
q.add_annotation(Value(1), "a")
return q
def has_results(self, using):
q = self.exists(using)
compiler = q.get_compiler(using=using)
return compiler.has_results()
…
def explain(self, using, format=None, **options):
q = self.clone()
for option_name in options:
if (
not EXPLAIN_OPTIONS_PATTERN.fullmatch(option_name)
Local vars
Variable Value compiler <SQLCompiler model=Session connection=<DatabaseWrapper vendor='mysql' alias='default'> using='default'>
q <django.db.models.sql.query.Query object at 0x7f18fe44aaa0>
self <django.db.models.sql.query.Query object at 0x7f18fe44af50>
using 'default'
-
/usr/local/lib/python3.10/site-packages/django/db/models/sql/compiler.py, line 1542, in has_resultsreturn rows
def has_results(self):
"""
Backends (e.g. NoSQL) can override this in order to use optimized
versions of "query has any results."
"""
return bool(self.execute_sql(SINGLE))
…
def execute_sql(
self, result_type=MULTI, chunked_fetch=False, chunk_size=GET_ITERATOR_CHUNK_SIZE
):
"""
Run the query against the database and return the result(s). The
Local vars
Variable Value self <SQLCompiler model=Session connection=<DatabaseWrapper vendor='mysql' alias='default'> using='default'>
-
/usr/local/lib/python3.10/site-packages/django/db/models/sql/compiler.py, line 1572, in execute_sqlif result_type == MULTI:
return iter([])
else:
return
if chunked_fetch:
cursor = self.connection.chunked_cursor()
else:
cursor = self.connection.cursor()
…
try:
cursor.execute(sql, params)
except Exception:
# Might fail for server-side cursors (e.g. connection closed)
cursor.close()
raise
Local vars
Variable Value chunk_size 100
chunked_fetch False
params (1, 'f84wwwd2xqo9k89rzefkdw6w4h0x92iy')
result_type 'single'
self <SQLCompiler model=Session connection=<DatabaseWrapper vendor='mysql' alias='default'> using='default'>
sql ('SELECT %s AS `a` FROM `django_session` WHERE `django_session`.`session_key` ' '= %s LIMIT 1') -
/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py, line 26, in innerget_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)
…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Local vars
Variable Value args (<DatabaseWrapper vendor='mysql' alias='default'>,)
func <function BaseDatabaseWrapper.cursor at 0x7f1de0055510>
kwargs {}message 'You cannot call this from an async context - use a thread or sync_to_async.'
-
/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py, line 320, in cursorreturn self.connection.close()
# ##### Generic wrappers for PEP-249 connection methods #####
@async_unsafe
def cursor(self):
"""Create a cursor, opening a connection if necessary."""
return self._cursor()
…
@async_unsafe
def commit(self):
"""Commit a transaction and reset the dirty flag."""
self.validate_thread_sharing()
self.validate_no_atomic_block()
Local vars
Variable Value self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py, line 296, in _cursorwrapped_cursor = self.make_debug_cursor(cursor)
else:
wrapped_cursor = self.make_cursor(cursor)
return wrapped_cursor
def _cursor(self, name=None):
self.close_if_health_check_failed()
self.ensure_connection()
…
with self.wrap_database_errors:
return self._prepare_cursor(self.create_cursor(name))
def _commit(self):
if self.connection is not None:
with debug_transaction(self, "COMMIT"), self.wrap_database_errors:
Local vars
Variable Value name None
self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py, line 26, in innerget_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)
…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Local vars
Variable Value args (<DatabaseWrapper vendor='mysql' alias='default'>,)
func <function BaseDatabaseWrapper.ensure_connection at 0x7f1de0055120>
kwargs {}message 'You cannot call this from an async context - use a thread or sync_to_async.'
-
/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py, line 278, in ensure_connectiondef ensure_connection(self):
"""Guarantee that a connection to the database is established."""
if self.connection is None:
if self.in_atomic_block and self.closed_in_transaction:
raise ProgrammingError(
"Cannot open a new connection in an atomic block."
)
with self.wrap_database_errors:
…
self.connect()
# ##### Backend-specific wrappers for PEP-249 connection methods #####
def _prepare_cursor(self, cursor):
"""
Local vars
Variable Value self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/django/db/utils.py, line 91, in __exit__db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__)
if issubclass(exc_type, db_exc_type):
dj_exc_value = dj_exc_type(*exc_value.args)
# Only set the 'errors_occurred' flag for errors that may make
# the connection unusable.
if dj_exc_type not in (DataError, IntegrityError):
self.wrapper.errors_occurred = True
raise dj_exc_value.with_traceback(traceback) from exc_value
…
def __call__(self, func):
# Note that we are intentionally not using @wraps here for performance
# reasons. Refs #21109.
def inner(*args, **kwargs):
with self:
Local vars
Variable Value db_exc_type <class 'MySQLdb.OperationalError'>
dj_exc_type <class 'django.db.utils.OperationalError'>
dj_exc_value OperationalError(1040, 'Too many connections')
exc_type <class 'MySQLdb.OperationalError'>
exc_value OperationalError(1040, 'Too many connections')
self <django.db.utils.DatabaseErrorWrapper object at 0x7f0090847340>
traceback <traceback object at 0x7f19ee691900>
-
/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py, line 279, in ensure_connection"""Guarantee that a connection to the database is established."""
if self.connection is None:
if self.in_atomic_block and self.closed_in_transaction:
raise ProgrammingError(
"Cannot open a new connection in an atomic block."
)
with self.wrap_database_errors:
self.connect()
…
# ##### Backend-specific wrappers for PEP-249 connection methods #####
def _prepare_cursor(self, cursor):
"""
Validate the connection is usable and perform database cursor wrapping.
Local vars
Variable Value self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py, line 26, in innerget_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)
…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Local vars
Variable Value args (<DatabaseWrapper vendor='mysql' alias='default'>,)
func <function BaseDatabaseWrapper.connect at 0x7f1de0054f70>
kwargs {}message 'You cannot call this from an async context - use a thread or sync_to_async.'
-
/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py, line 256, in connectself.close_at = None if max_age is None else time.monotonic() + max_age
self.closed_in_transaction = False
self.errors_occurred = False
# New connections are healthy.
self.health_check_done = True
# Establish the connection
conn_params = self.get_connection_params()
self.connection = self.get_new_connection(conn_params)
…
self.set_autocommit(self.settings_dict["AUTOCOMMIT"])
self.init_connection_state()
connection_created.send(sender=self.__class__, connection=self)
self.run_on_commit = []
Local vars
Variable Value conn_params {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}max_age 0
self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py, line 26, in innerget_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)
…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Local vars
Variable Value args (<DatabaseWrapper vendor='mysql' alias='default'>, {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'})func <function DatabaseWrapper.get_new_connection at 0x7f1ddfed8ee0>
kwargs {}message 'You cannot call this from an async context - use a thread or sync_to_async.'
-
/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py, line 256, in get_new_connection)
self.isolation_level = isolation_level
kwargs.update(options)
return kwargs
@async_unsafe
def get_new_connection(self, conn_params):
connection = Database.connect(**conn_params)
…
# bytes encoder in mysqlclient doesn't work and was added only to
# prevent KeyErrors in Django < 2.0. We can remove this workaround when
# mysqlclient 2.1 becomes the minimal mysqlclient supported by Django.
# See https://github.com/PyMySQL/mysqlclient/issues/489
if connection.encoders.get(bytes) is bytes:
connection.encoders.pop(bytes)
Local vars
Variable Value conn_params {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}self <DatabaseWrapper vendor='mysql' alias='default'>
-
/usr/local/lib/python3.10/site-packages/MySQLdb/__init__.py, line 121, in Connectreturn bytes(x)
def Connect(*args, **kwargs):
"""Factory function for connections.Connection."""
from MySQLdb.connections import Connection
return Connection(*args, **kwargs)
…
connect = Connection = Connect
__all__ = [
"BINARY",
Local vars
Variable Value Connection <class 'MySQLdb.connections.Connection'>
args ()
kwargs {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'} -
/usr/local/lib/python3.10/site-packages/MySQLdb/connections.py, line 195, in __init__if multi_statements:
client_flag |= CLIENT.MULTI_STATEMENTS
kwargs2["client_flag"] = client_flag
# PEP-249 requires autocommit to be initially off
autocommit = kwargs2.pop("autocommit", False)
super().__init__(*args, **kwargs2)
…
self.cursorclass = cursorclass
self.encoders = {k: v
for k, v in conv.items()
if type(k) is not int # noqa: E721
}
Local vars
Variable Value CLIENT <module 'MySQLdb.constants.CLIENT' from '/usr/local/lib/python3.10/site-packages/MySQLdb/constants/CLIENT.py'>
FIELD_TYPE <module 'MySQLdb.constants.FIELD_TYPE' from '/usr/local/lib/python3.10/site-packages/MySQLdb/constants/FIELD_TYPE.py'>
__class__ <class 'MySQLdb.connections.Connection'>
_bytes_or_str ((128, <class 'bytes'>), (None, <class 'str'>))
args ()
autocommit False
charset 'utf8'
client_flag 196610
collation ''
conv {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}conv2 {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}conversions {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function TimeDelta_or_None at 0x7f1de0057d90>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}cursorclass <class 'MySQLdb.cursors.Cursor'>
k 245
kwargs {'charset': 'utf8', 'client_flag': 2, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}kwargs2 {'charset': 'utf8', 'client_flag': 196610, 'conv': {0: <class 'decimal.Decimal'>, 1: <class 'int'>, 2: <class 'int'>, 3: <class 'int'>, 4: <class 'float'>, 5: <class 'float'>, 7: <function DateTime_or_None at 0x7f1de0057d00>, 8: <class 'int'>, 9: <class 'int'>, 10: <function Date_or_None at 0x7f1de0057eb0>, 11: <function typecast_time at 0x7f1de04c9c60>, 12: <function DateTime_or_None at 0x7f1de0057d00>, 13: <class 'int'>, 15: <class 'bytes'>, 245: <class 'bytes'>, 246: <class 'decimal.Decimal'>, 249: <class 'bytes'>, 250: <class 'bytes'>, 251: <class 'bytes'>, 252: <class 'bytes'>, 253: <class 'bytes'>, 254: <class 'bytes'>, <class 'array.array'>: <function array2Str at 0x7f1ddfe74940>, <class 'decimal.Decimal'>: <function Decimal2Literal at 0x7f1ddfe748b0>, <class 'datetime.datetime'>: <function DateTime2literal at 0x7f1de0057f40>, <class 'datetime.date'>: <function Thing2Literal at 0x7f1ddfe74820>, <class 'datetime.timedelta'>: <function DateTimeDelta2literal at 0x7f1ddfe74040>, <class 'set'>: <function Set2Str at 0x7f1ddfe745e0>, <class 'NoneType'>: <function None2NULL at 0x7f1ddfe74790>, <class 'int'>: <function Thing2Str at 0x7f1ddfe74670>, <class 'float'>: <function Float2Str at 0x7f1ddfe74700>, <class 'bool'>: <function Bool2Str at 0x7f1ddfe744c0>}, 'database': 'insights', 'host': 'mysql', 'password': '123456', 'port': 3306, 'user': 'root'}multi_statements True
self <_mysql.connection open to '(null)' at 0x7f1d842e6f50>
sql_mode ''
use_unicode True
v <class 'bytes'>
Request information
USER
AnonymousUser
GET
| Variable | Value |
|---|---|
| company | 'singapore wefic ocean technologies pte. ltd.' |
POST
No POST data
FILES
No FILES data
COOKIES
No cookie data
META
| Variable | Value |
|---|---|
| ACCOUNT_HTTP_PROTOCOL | 'https' |
| APOLLO_API_KEY | '********************' |
| CONTENT_LENGTH | '' |
| CONTENT_TYPE | 'text/plain' |
| DATABASE | 'insights' |
| DATABASE_HOST | 'mysql' |
| DATABASE_PORT | '3306' |
| DEBUG | '"False"' |
| DJANGO_SETTINGS_MODULE | 'insights.settings' |
| GATEWAY_INTERFACE | 'CGI/1.1' |
| GPG_KEY | '********************' |
| HOME | '/root' |
| HOSTNAME | '858b4654535d' |
| HTTP_ACCEPT | '*/*' |
| HTTP_ACCEPT_ENCODING | 'gzip, deflate, br' |
| HTTP_CONNECTION | 'upgrade' |
| HTTP_HOST | 'talentup.io' |
| HTTP_USER_AGENT | 'python-requests/2.27.1' |
| LANG | 'C.UTF-8' |
| MAILCHIMP_KEY | '********************' |
| PATH | '/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' |
| PATH_INFO | '/insights/company/' |
| PWD | '/usr/src/app' |
| PYTHON_SHA256 | 'bfb249609990220491a1b92850a07135ed0831e41738cf681d63cf01b2a8fbd1' |
| PYTHON_VERSION | '3.10.16' |
| QUERY_STRING | 'company=singapore%20wefic%20ocean%20technologies%20pte.%20ltd.' |
| REMOTE_ADDR | '172.19.0.8' |
| REMOTE_HOST | '' |
| REQUEST_METHOD | 'GET' |
| RUN_MAIN | 'true' |
| SCRIPT_NAME | '' |
| SENDGRID_KEY | '********************' |
| SERVER_NAME | '858b4654535d' |
| SERVER_PORT | '8000' |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| SERVER_SOFTWARE | 'WSGIServer/0.2' |
| STAGE | 'PROD' |
| TZ | 'UTC' |
| wsgi.errors | <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'> |
| wsgi.file_wrapper | <class 'wsgiref.util.FileWrapper'> |
| wsgi.input | <django.core.handlers.wsgi.LimitedStream object at 0x7f147e4ffb50> |
| wsgi.multiprocess | False |
| wsgi.multithread | True |
| wsgi.run_once | False |
| wsgi.url_scheme | 'http' |
| wsgi.version | (1, 0) |
Settings
Using settings module insights.settings
| Setting | Value |
|---|---|
| ABSOLUTE_URL_OVERRIDES | {} |
| ACCOUNT_ADAPTER | 'insights.adapter.MyAccountAdapter' |
| ACCOUNT_AUTHENTICATION_METHOD | 'email' |
| ACCOUNT_DEFAULT_HTTP_PROTOCOL | 'https' |
| ACCOUNT_EMAIL_REQUIRED | True |
| ACCOUNT_EMAIL_VERIFICATION | 'none' |
| ACCOUNT_SIGNUP_FORM_CLASS | 'insights.forms.LocalSignupForm' |
| ACCOUNT_SIGNUP_PASSWORD_ENTER_TWICE | '********************' |
| ACCOUNT_USERNAME_REQUIRED | False |
| ACCOUNT_USER_MODEL_USERNAME_FIELD | None |
| ADMINS | [] |
| ALLOWED_HOSTS | ['localhost', 'www.talentup.io', 'talentup.io', 'dev.talentup.io', 'insights.talentup.io', 'test.talentup.io'] |
| APOLLO_KEY | '********************' |
| APPEND_SLASH | True |
| AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend') |
| AUTH_PASSWORD_VALIDATORS | '********************' |
| AUTH_USER_MODEL | 'insights.hcuser' |
| BASE_DIR | '/usr/src/app' |
| BOWER_COMPONENTS_ROOT | '/usr/src/app/static/assets/components' |
| BOWER_PATH | '/usr/src/app/../bin/bower' |
| CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
| CACHE_MIDDLEWARE_ALIAS | 'default' |
| CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
| CACHE_MIDDLEWARE_SECONDS | 600 |
| CSRF_COOKIE_AGE | 31449600 |
| CSRF_COOKIE_DOMAIN | None |
| CSRF_COOKIE_HTTPONLY | False |
| CSRF_COOKIE_NAME | 'csrftoken' |
| CSRF_COOKIE_PATH | '/' |
| CSRF_COOKIE_SAMESITE | 'Lax' |
| CSRF_COOKIE_SECURE | False |
| CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
| CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
| CSRF_TRUSTED_ORIGINS | ['https://talentup.io'] |
| CSRF_USE_SESSIONS | False |
| DATABASES | {'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_HEALTH_CHECKS': False,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.mysql',
'HOST': 'mysql',
'NAME': 'insights',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '3306',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIGRATE': True,
'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': 'root'}} |
| DATABASE_ROUTERS | [] |
| DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
| DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
| DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
| DATETIME_FORMAT | 'N j, Y, P' |
| DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
| DATE_FORMAT | 'N j, Y' |
| DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
| DEBUG | True |
| DEBUG_PROPAGATE_EXCEPTIONS | False |
| DECIMAL_SEPARATOR | '.' |
| DEFAULT_AUTO_FIELD | 'django.db.models.AutoField' |
| DEFAULT_CHARSET | 'utf-8' |
| DEFAULT_EMAIL_FROM | 'platform@talentup.io' |
| DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
| DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
| DEFAULT_FROM_EMAIL | 'platform@talentup.io' |
| DEFAULT_HTTP_PROTOCOL | 'https' |
| DEFAULT_INDEX_TABLESPACE | '' |
| DEFAULT_TABLESPACE | '' |
| DISALLOWED_USER_AGENTS | [] |
| ELASTICSEARCH_HOST | 'talentup.io:9200' |
| EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
| EMAIL_HOST | 'smtp.sendgrid.net' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | 'apikey' |
| EMAIL_PORT | 587 |
| EMAIL_SSL_CERTFILE | None |
| EMAIL_SSL_KEYFILE | '********************' |
| EMAIL_SUBJECT_PREFIX | '[Django] ' |
| EMAIL_TIMEOUT | None |
| EMAIL_USE_LOCALTIME | False |
| EMAIL_USE_SSL | False |
| EMAIL_USE_TLS | True |
| ENVIRONMENT | 'PROD' |
| FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
| FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
| FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
| FILE_UPLOAD_PERMISSIONS | 420 |
| FILE_UPLOAD_TEMP_DIR | None |
| FIRST_DAY_OF_WEEK | 0 |
| FIXTURE_DIRS | [] |
| FORCE_SCRIPT_NAME | None |
| FORMAT_MODULE_PATH | None |
| FORMS_URLFIELD_ASSUME_HTTPS | False |
| FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
| IGNORABLE_404_URLS | [] |
| INSTALLED_APPS | ['insights', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.github', 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.windowslive', 'django.contrib.humanize'] |
| INTERNAL_IPS | [] |
| LANGUAGES | [('af', 'Afrikaans'),
('ar', 'Arabic'),
('ar-dz', 'Algerian Arabic'),
('ast', 'Asturian'),
('az', 'Azerbaijani'),
('bg', 'Bulgarian'),
('be', 'Belarusian'),
('bn', 'Bengali'),
('br', 'Breton'),
('bs', 'Bosnian'),
('ca', 'Catalan'),
('ckb', 'Central Kurdish (Sorani)'),
('cs', 'Czech'),
('cy', 'Welsh'),
('da', 'Danish'),
('de', 'German'),
('dsb', 'Lower Sorbian'),
('el', 'Greek'),
('en', 'English'),
('en-au', 'Australian English'),
('en-gb', 'British English'),
('eo', 'Esperanto'),
('es', 'Spanish'),
('es-ar', 'Argentinian Spanish'),
('es-co', 'Colombian Spanish'),
('es-mx', 'Mexican Spanish'),
('es-ni', 'Nicaraguan Spanish'),
('es-ve', 'Venezuelan Spanish'),
('et', 'Estonian'),
('eu', 'Basque'),
('fa', 'Persian'),
('fi', 'Finnish'),
('fr', 'French'),
('fy', 'Frisian'),
('ga', 'Irish'),
('gd', 'Scottish Gaelic'),
('gl', 'Galician'),
('he', 'Hebrew'),
('hi', 'Hindi'),
('hr', 'Croatian'),
('hsb', 'Upper Sorbian'),
('hu', 'Hungarian'),
('hy', 'Armenian'),
('ia', 'Interlingua'),
('id', 'Indonesian'),
('ig', 'Igbo'),
('io', 'Ido'),
('is', 'Icelandic'),
('it', 'Italian'),
('ja', 'Japanese'),
('ka', 'Georgian'),
('kab', 'Kabyle'),
('kk', 'Kazakh'),
('km', 'Khmer'),
('kn', 'Kannada'),
('ko', 'Korean'),
('ky', 'Kyrgyz'),
('lb', 'Luxembourgish'),
('lt', 'Lithuanian'),
('lv', 'Latvian'),
('mk', 'Macedonian'),
('ml', 'Malayalam'),
('mn', 'Mongolian'),
('mr', 'Marathi'),
('ms', 'Malay'),
('my', 'Burmese'),
('nb', 'Norwegian Bokmål'),
('ne', 'Nepali'),
('nl', 'Dutch'),
('nn', 'Norwegian Nynorsk'),
('os', 'Ossetic'),
('pa', 'Punjabi'),
('pl', 'Polish'),
('pt', 'Portuguese'),
('pt-br', 'Brazilian Portuguese'),
('ro', 'Romanian'),
('ru', 'Russian'),
('sk', 'Slovak'),
('sl', 'Slovenian'),
('sq', 'Albanian'),
('sr', 'Serbian'),
('sr-latn', 'Serbian Latin'),
('sv', 'Swedish'),
('sw', 'Swahili'),
('ta', 'Tamil'),
('te', 'Telugu'),
('tg', 'Tajik'),
('th', 'Thai'),
('tk', 'Turkmen'),
('tr', 'Turkish'),
('tt', 'Tatar'),
('udm', 'Udmurt'),
('ug', 'Uyghur'),
('uk', 'Ukrainian'),
('ur', 'Urdu'),
('uz', 'Uzbek'),
('vi', 'Vietnamese'),
('zh-hans', 'Simplified Chinese'),
('zh-hant', 'Traditional Chinese')] |
| LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur'] |
| LANGUAGE_CODE | 'en-us' |
| LANGUAGE_COOKIE_AGE | None |
| LANGUAGE_COOKIE_DOMAIN | None |
| LANGUAGE_COOKIE_HTTPONLY | False |
| LANGUAGE_COOKIE_NAME | 'django_language' |
| LANGUAGE_COOKIE_PATH | '/' |
| LANGUAGE_COOKIE_SAMESITE | None |
| LANGUAGE_COOKIE_SECURE | False |
| LOCALE_PATHS | [] |
| LOGGING | {} |
| LOGGING_CONFIG | 'logging.config.dictConfig' |
| LOGIN_REDIRECT_URL | '/insights/dashboard' |
| LOGIN_URL | '/accounts/login/' |
| LOGOUT_REDIRECT_URL | None |
| MANAGERS | [] |
| MEDIA_ROOT | '' |
| MEDIA_URL | '/' |
| MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
| MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'insights.backend.custom-middleware.lastvisit.SetLastVisitMiddleware', 'allauth.account.middleware.AccountMiddleware'] |
| MIGRATION_MODULES | {} |
| MONTH_DAY_FORMAT | 'F j' |
| NUMBER_GROUPING | 0 |
| PASSWORD_HASHERS | '********************' |
| PASSWORD_RESET_TIMEOUT | '********************' |
| PREPEND_WWW | False |
| RECAPTCHA_PRIVATE_KEY | '********************' |
| RECAPTCHA_PUBLIC_KEY | '********************' |
| RECAPTCHA_REQUIRED_SCORE | 0.75 |
| ROOT_URLCONF | 'insights.urls' |
| SECRET_KEY | '********************' |
| SECRET_KEY_FALLBACKS | '********************' |
| SECURE_CONTENT_TYPE_NOSNIFF | True |
| SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
| SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
| SECURE_HSTS_PRELOAD | False |
| SECURE_HSTS_SECONDS | 0 |
| SECURE_PROXY_SSL_HEADER | None |
| SECURE_REDIRECT_EXEMPT | [] |
| SECURE_REFERRER_POLICY | 'same-origin' |
| SECURE_SSL_HOST | None |
| SECURE_SSL_REDIRECT | False |
| SENDGRID_KEY | '********************' |
| SERVER_EMAIL | 'root@localhost' |
| SESSION_CACHE_ALIAS | 'default' |
| SESSION_COOKIE_AGE | 1209600 |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'fdnsFHudis43jHb' |
| SESSION_COOKIE_PATH | '/' |
| SESSION_COOKIE_SAMESITE | 'Lax' |
| SESSION_COOKIE_SECURE | False |
| SESSION_ENGINE | 'django.contrib.sessions.backends.cached_db' |
| SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
| SESSION_FILE_PATH | None |
| SESSION_SAVE_EVERY_REQUEST | False |
| SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
| SETTINGS_MODULE | 'insights.settings' |
| SHORT_DATETIME_FORMAT | 'm/d/Y P' |
| SHORT_DATE_FORMAT | 'm/d/Y' |
| SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
| SILENCED_SYSTEM_CHECKS | [] |
| SITE_ID | 4 |
| SOCIALACCOUNT_ADAPTER | 'insights.socialadapter.SocialAdapter' |
| SOCIALACCOUNT_PROVIDERS | {'google': {'AUTH_PARAMS': {'access_type': 'offline'},
'OAUTH_PKCE_ENABLED': True,
'SCOPE': ['email', 'profile']}} |
| STATICFILES_DIRS | ['/usr/src/app/static'] |
| STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
| STATIC_ROOT | None |
| STATIC_URL | '/insights/static/' |
| STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
| TEMPLATES | [{'APP_DIRS': True,
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages']}}] |
| TEST_NON_SERIALIZED_APPS | [] |
| TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
| THOUSAND_SEPARATOR | ',' |
| TIME_FORMAT | 'P' |
| TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
| TIME_ZONE | 'UTC' |
| USE_I18N | True |
| USE_L10N | True |
| USE_THOUSAND_SEPARATOR | False |
| USE_TZ | True |
| USE_X_FORWARDED_HOST | False |
| USE_X_FORWARDED_PORT | False |
| WSGI_APPLICATION | None |
| X_FRAME_OPTIONS | 'DENY' |
| YEAR_MONTH_FORMAT | 'F Y' |