On Sat, Feb 20, 2021 at 12:57 PM Michael Merickel <[email protected]> wrote:
> Check out the new pattern of storing the request in the SQLAlchemy session 
> object for easier access in your model layer without threadlocals!

Where is that? I don't see it in 'pyramid-cookiecutter-starter' or the 2.0 docs.

I do essentially the opposite. I have a request subclass with reified
methods for external resources like 'request.sa_session()'.
Cookiecutter is still using this concept although using
'config.add_request_method()' instead of a subclass:

https://github.com/Pylons/pyramid-cookiecutter-starter/blob/latest/%7B%7Bcookiecutter.repo_name%7D%7D/%7B%7Bcookiecutter.repo_name%7D%7D/sqlalchemy_models/__init__.py
(Lines 71-75.)

My model classes used to have querying methods but I moved away from
that because they ended up putting too much into the models and being
too limiting (my querying needs inevitably expanded beyond the method
arguments). I now have just the columns and relations in the models,
and separate lib modules for high-level queries. These take a session
argument.  I don't usually need a request argument except occasionally
for URL generation. For that I have a postprocessing function that
adds the URL attributes to the query results. For instance:

# View
results = myapp.lib.mysearch.do_search(sa_session, ...criteria..)
    # Return list of ORM objects,
postprocess(results, request)
    # Iterate through objects, adding URL attributes for HTML links,
    # formatting dates, calculating display values, etc.

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/CAH9f%3Duo821nzLFSttTcvn5xBqbAL2hisuQWUE_%2BCS8q15zUgRA%40mail.gmail.com.

Reply via email to