How to “reconnect” an ORM object or list of such objects with the database?
My understanding is that the following code will return an error:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
My understanding is that the error is caused by the session ending, which disconnects the advert_doms
list from the database.
If I have a function that returns an ORM object or list of ORM objects, how can I have the objects later "reconnect" with the database so that the code above would work?
Here's an example of what I mean:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
# TODO: Do something here so that the code below will work.
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
python sqlalchemy
add a comment |
My understanding is that the following code will return an error:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
My understanding is that the error is caused by the session ending, which disconnects the advert_doms
list from the database.
If I have a function that returns an ORM object or list of ORM objects, how can I have the objects later "reconnect" with the database so that the code above would work?
Here's an example of what I mean:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
# TODO: Do something here so that the code below will work.
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
python sqlalchemy
add a comment |
My understanding is that the following code will return an error:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
My understanding is that the error is caused by the session ending, which disconnects the advert_doms
list from the database.
If I have a function that returns an ORM object or list of ORM objects, how can I have the objects later "reconnect" with the database so that the code above would work?
Here's an example of what I mean:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
# TODO: Do something here so that the code below will work.
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
python sqlalchemy
My understanding is that the following code will return an error:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
My understanding is that the error is caused by the session ending, which disconnects the advert_doms
list from the database.
If I have a function that returns an ORM object or list of ORM objects, how can I have the objects later "reconnect" with the database so that the code above would work?
Here's an example of what I mean:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
# TODO: Do something here so that the code below will work.
for advert_dom in advert_doms:
print(advert_dom.HTMLContent)
python sqlalchemy
python sqlalchemy
asked Jan 1 at 16:32
Nathan WailesNathan Wailes
1,81831237
1,81831237
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The answer is to create a new session and do session.add(orm_object)
:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
with db_session() as session: # <-- New line of code
for advert_dom in advert_doms:
session.add(advert_dom) # <-- New line of code
print(advert_dom.HTMLContent)
The other way to avoid this problem is to just have a single global session object that doesn't get closed until both functions have run.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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%2f53997102%2fhow-to-reconnect-an-orm-object-or-list-of-such-objects-with-the-database%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The answer is to create a new session and do session.add(orm_object)
:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
with db_session() as session: # <-- New line of code
for advert_dom in advert_doms:
session.add(advert_dom) # <-- New line of code
print(advert_dom.HTMLContent)
The other way to avoid this problem is to just have a single global session object that doesn't get closed until both functions have run.
add a comment |
The answer is to create a new session and do session.add(orm_object)
:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
with db_session() as session: # <-- New line of code
for advert_dom in advert_doms:
session.add(advert_dom) # <-- New line of code
print(advert_dom.HTMLContent)
The other way to avoid this problem is to just have a single global session object that doesn't get closed until both functions have run.
add a comment |
The answer is to create a new session and do session.add(orm_object)
:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
with db_session() as session: # <-- New line of code
for advert_dom in advert_doms:
session.add(advert_dom) # <-- New line of code
print(advert_dom.HTMLContent)
The other way to avoid this problem is to just have a single global session object that doesn't get closed until both functions have run.
The answer is to create a new session and do session.add(orm_object)
:
from src.mysqlClient import db_session
from src.mysqlClient.models import AdvertDom
def function_one():
with db_session() as session:
advert_doms = session.query(AdvertDom).all()
return advert_doms
def function_two()
advert_doms = function_one()
with db_session() as session: # <-- New line of code
for advert_dom in advert_doms:
session.add(advert_dom) # <-- New line of code
print(advert_dom.HTMLContent)
The other way to avoid this problem is to just have a single global session object that doesn't get closed until both functions have run.
answered Jan 12 at 12:36
Nathan WailesNathan Wailes
1,81831237
1,81831237
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.
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%2f53997102%2fhow-to-reconnect-an-orm-object-or-list-of-such-objects-with-the-database%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