sanic/docs/class_based_views.md

45 lines
1021 B
Markdown
Raw Normal View History

# Class based views
2016-11-26 06:44:46 +00:00
Sanic has simple class based implementation. You should implement methods(get, post, put, patch, delete) for the class to every HTTP method you want to support. If someone tries to use a method that has not been implemented, there will be 405 response.
## Examples
```python
from sanic import Sanic
2016-11-26 06:44:46 +00:00
from sanic.views import HTTPMethodView
app = Sanic('some_name')
2016-11-26 06:44:46 +00:00
class SimpleView(HTTPMethodView):
2016-11-26 06:44:46 +00:00
def get(self, request):
return text('I am get method')
2016-11-26 06:44:46 +00:00
def post(self, request):
return text('I am post method')
2016-11-26 06:44:46 +00:00
def put(self, request):
return text('I am put method')
2016-11-26 06:44:46 +00:00
def patch(self, request):
return text('I am patch method')
2016-11-26 06:44:46 +00:00
def delete(self, request):
return text('I am delete method')
app.add_route(SimpleView(), '/')
```
If you need any url params just mention them in method definition:
```python
2016-11-26 06:44:46 +00:00
class NameView(HTTPMethodView):
2016-11-26 06:44:46 +00:00
def get(self, request, name):
return text('Hello {}'.format(name))
app.add_route(NameView(), '/<name>')
```