I want to write a custom function and pass it unto my tornado template fine.
Like def trimString(data): return data[0:20]
then push this into my tornado file.
This should allow me trim strings.
Is this possible?
Thanks.
It's not especially clear in the documentation, but you can do this easily by defining this function in a module and passing the module to tornado.web.Application
as the ui_methods
argument.
I. E.:
in ui_methods.py:
def trim_string(data):
return data[0:20]
in app.py:
import tornado.ioloop
import tornado.web
import ui_methods
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("main.html")
urls = [(r"/", MainHandler)]
application = tornado.web.Application(urls, ui_methods=ui_methods)
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
in main.html:
....
{{ trim_string('a string that is too long............') }}
....
Andy Boot's solution also works, but it's often nice to have functions like this automatically accessible in every template.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With