Я бы предпочел использовать идиому диспетчерского словаря, кодирующую что-то вроде ...:
import sys
dispatch = { 'map': ('modulo.map.views', 'map'),
'schedule': ('modulo.schedule.views', 'schedule_day'),
...etc etc.. }
if app in dispatch:
modname, funname = dispatch[app]
try: __import__(modname)
except ImportError: pass
else:
f = getattr(sys.modules[modname], funname, None)
if f is not None:
return f(request, *args, **kwargs)
Не уверен, что то, что вы думаете, «генерация кода» купит вас, чтобы сделать его предпочтительным для такого подхода.