This is not the best way. It will run a separate query for each board id. On GAE you want to do
as much as you can in a single query. So the best way is to construct a list of GAE keys and
get all entities together. Unfortunately, AFAIK, there is no support for GAE batch queries in DAL.
You can, however, try to refer to the GAE datastore directly.
from google.appengine.ext import db as gdb
articles = db().select(db.articles.ALL)
keys = [gdb.Key.from_path("boards", a.board_id) for a in articles]
boards = gdb.get(keys)
But I'm afraid this is not an elegant solution as it probably won't work without a gdb.Model defined
for the board entity, and that would go against DRY [1]. Anyway, if you want to do it, see the GAE
docs [2] for details on model definition.
Depending on how often are you going to perform this query a better solution might be redesigning
your database. Forget about 3NF and add the board attributes to each article entity so that you
can fetch everything together in a single query.
[1]
https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
[2]
http://code.google.com/appengine/docs/python/datastore/entities.html