Если вы используете собственную простую инфраструктуру webapp собственного App Engine, самый простой подход состоит в том, чтобы в качестве метода get
вашего объекта-обработчика запроса было что-то вроде:
def get(self):
thestring = 'helloworld' # or however else it's synthesized;-)
self.response.headers.add_header(
'content-disposition', 'attachment', filename='hw.txt')
self.response.out.write(thestring)
Конечно, вы можете использовать более сложные подходы, если у вас есть другие разные цели, но это соответствует вашей цели, как указано.