CherryPy: How to restrict a route to POST-only
Asked Answered
C

1

5

I've a web-form that looks like:

<form action="/process_form/" method="post">
  <input type="text" name="login" value="login" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>

The python class to handle this is:

class Handle:
  @cherrypy.expose()
  #@cherrypy.tools.post <-- Is something like this possible
  def index(self, login=None):
    print(login)

Is there a way in CherryPy to restrict the call to /process_form/ to POST method? I mean if a user types http://www.example.com/process_form/ he/she should get an Exception/Error or page not found?

Caz answered 31/3, 2013 at 10:14 Comment(2)
tools.cherrypy.org/wiki/HTTPMethodFiltering. Haven't really used cherrypy that much. However, flipping through the documentation yielded me this. Check if you find it useful.Marchpane
CherryPy has native support for REST methods. Head for the documentation docs.cherrypy.org/dev/progguide/REST.htmlMahound
E
9

The Allow tool will raise a 405.

@cherrypy.tools.allow(methods=['POST'])
Elodiaelodie answered 31/3, 2013 at 16:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.