Flexible Python web forms with asynchronous validation