Python format throws KeyError
Solution 1:
You have a number of unescaped braces in that code. Python considers all braces to be placeholders and is trying to substitute them all. However, you have only supplied one value.
I expect that you don't want all your braces to be placeholders, so you should double the ones that you don't want substituted. Such as:
template = """
function routes(app, model){{
app.get('/preNew{className}', function(req, res){{
res.render('{className}'.ejs, {{}});
}};
}});""".format(className=className)
I also took the liberty of using triple quotes for the string literal so you don't need the backslashes at the end of each line.