How to close connection with returned value in PyMySQL lib?
up vote
0
down vote
favorite
I have the following code:
import pymysql.cursors
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
connection = pymysql.connect(host=...,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT value from tab limit 1 "
cursor.execute(sql)
result = cursor.fetchone()
print(result)
finally:
connection.close()
if __name__ == '__main__':
mysql = MylocalSQL()
mysql.get_max_report_date()
I want to change the print(result)
into return
so i can do:
value = mysql.get_max_report_date()
However if I change the print(result)
into return result
then the finally block won't be executed.
Is there a better way to manage the connection & handling errors while being able to return the value from the query?
python pymysql
add a comment |
up vote
0
down vote
favorite
I have the following code:
import pymysql.cursors
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
connection = pymysql.connect(host=...,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT value from tab limit 1 "
cursor.execute(sql)
result = cursor.fetchone()
print(result)
finally:
connection.close()
if __name__ == '__main__':
mysql = MylocalSQL()
mysql.get_max_report_date()
I want to change the print(result)
into return
so i can do:
value = mysql.get_max_report_date()
However if I change the print(result)
into return result
then the finally block won't be executed.
Is there a better way to manage the connection & handling errors while being able to return the value from the query?
python pymysql
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have the following code:
import pymysql.cursors
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
connection = pymysql.connect(host=...,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT value from tab limit 1 "
cursor.execute(sql)
result = cursor.fetchone()
print(result)
finally:
connection.close()
if __name__ == '__main__':
mysql = MylocalSQL()
mysql.get_max_report_date()
I want to change the print(result)
into return
so i can do:
value = mysql.get_max_report_date()
However if I change the print(result)
into return result
then the finally block won't be executed.
Is there a better way to manage the connection & handling errors while being able to return the value from the query?
python pymysql
I have the following code:
import pymysql.cursors
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
connection = pymysql.connect(host=...,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT value from tab limit 1 "
cursor.execute(sql)
result = cursor.fetchone()
print(result)
finally:
connection.close()
if __name__ == '__main__':
mysql = MylocalSQL()
mysql.get_max_report_date()
I want to change the print(result)
into return
so i can do:
value = mysql.get_max_report_date()
However if I change the print(result)
into return result
then the finally block won't be executed.
Is there a better way to manage the connection & handling errors while being able to return the value from the query?
python pymysql
python pymysql
asked Nov 11 at 10:04
Luis
267
267
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
accepted
You are mistaken about the behavior of finally. The finally block is executed, even if you have the return
statement.
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
try:
return "some value"
finally:
print('i was executed')
MylocalSQL().get_max_report_date()
prints "I was executed"
https://ideone.com/KhvVKy
add a comment |
up vote
0
down vote
Create a variable before. Assign the result to your variable. Close the connection. Return the variable.
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
You are mistaken about the behavior of finally. The finally block is executed, even if you have the return
statement.
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
try:
return "some value"
finally:
print('i was executed')
MylocalSQL().get_max_report_date()
prints "I was executed"
https://ideone.com/KhvVKy
add a comment |
up vote
0
down vote
accepted
You are mistaken about the behavior of finally. The finally block is executed, even if you have the return
statement.
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
try:
return "some value"
finally:
print('i was executed')
MylocalSQL().get_max_report_date()
prints "I was executed"
https://ideone.com/KhvVKy
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
You are mistaken about the behavior of finally. The finally block is executed, even if you have the return
statement.
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
try:
return "some value"
finally:
print('i was executed')
MylocalSQL().get_max_report_date()
prints "I was executed"
https://ideone.com/KhvVKy
You are mistaken about the behavior of finally. The finally block is executed, even if you have the return
statement.
class MylocalSQL:
def __init__(self):
pass
def get_max_report_date(self):
try:
return "some value"
finally:
print('i was executed')
MylocalSQL().get_max_report_date()
prints "I was executed"
https://ideone.com/KhvVKy
answered Nov 11 at 10:09
Uku Loskit
29.8k86779
29.8k86779
add a comment |
add a comment |
up vote
0
down vote
Create a variable before. Assign the result to your variable. Close the connection. Return the variable.
add a comment |
up vote
0
down vote
Create a variable before. Assign the result to your variable. Close the connection. Return the variable.
add a comment |
up vote
0
down vote
up vote
0
down vote
Create a variable before. Assign the result to your variable. Close the connection. Return the variable.
Create a variable before. Assign the result to your variable. Close the connection. Return the variable.
answered Nov 11 at 10:05
NielsNet
38818
38818
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53247620%2fhow-to-close-connection-with-returned-value-in-pymysql-lib%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown