When you check if POST is working are you actually sending/posting any data to the server? If you navigate to the url "/post" you will make a "GET" request to the server and since there is no GET function for that url it will return "405 Method Not Allowed".
So if you would like to make something like a form, you would have a GET function that returned the page to the user, and then a POST function to receive the input from the form and do something with it on the server. Both within the same url class.
Hope that helps.