If writing plugin code to handle a web request, you can use code like the below to retrieve a tiddler from the store. The Server Request Model establishes a store reference named tiddlyweb.store
in the environ.
from tiddlyweb.model.tiddler import Tiddler
store = environ['tiddlyweb.store']
tiddler = Tiddler(title, bag)
tiddler.revision = revision # N.B.: only set if a specific revision is desired
tiddler = store.get(tiddler)
When the code is not initiated by a web request, the caller must establish the store.
from tiddlyweb.store import Store
from tiddlyweb.config import config
store = Store(config['server_store'][0], config['server_store'][1], environ={})
store = Store(config['server_store'][0], config['server_store'][1], environ={'tiddlyweb.config': config})
Retrieving Tiddlers From Bag or Recipe
from tiddlyweb.model.bag import Bag
from tiddlyweb.model.recipe import Recipe
from tiddlyweb.store import Store
from tiddlyweb import control
from tiddlyweb.config import config
# set up environment
env = { 'tiddlyweb.config': config }
store = Store(config['server_store'][0], env)
# retrieve tiddlers from bag
bag_name = 'foo'
bag = Bag(bag_name)
bag = store.get(bag)
tiddlers = store.list_bag_tiddlers(bag)
# retrieve tiddlers from recipe
recipe_name = 'bar'
recipe = Recipe(recipe_name)
recipe = store.get(recipe)
tiddlers = control.get_tiddlers_from_recipe(recipe, env)
# In both the above cases the tiddlers returns have not been populated with data
# from the store. To do that do this:
for tiddler in tiddlers:
tiddler = store.get(tiddler)
# do something with the tiddler