Creating a custom page I am new to drupal 8 however, I have experience in MVC pattern and used Django earlier. I want to create a page that points to localhost/home where I would like to show a slideshow from view slideshow module as well as some static contents like images, links, etc. If I were on django, I would simple redirect the parameters to display directly on template i.e something like HttpResponse(template.render(context, request)).

How do I do such thing is drupal 8? I have looked at lots of places and still cannot find anything. The solution that I have found till now is to create separate module for each page i.e home, about-us, etc. and route a Controller function. Is this the only approach? Please help. Thanks.
Pages in Drupal are largely composed of content types with fields attached to them, and sometimes, blocks (which can be created from Views). 

You do not need to create custom routes and controllers for them, the core Node module takes care of this for you.

The core Path module will allow for custom aliases, and Pathauto will let you create automatic aliasing rules.

It would be a fairly rare thing to need to implement a route and controller just to display basic content in Drupal. 99% of the time it can be achieved with content types, Views, or panels.

You will probably want to review some of the material on Drupalize.me to learn Drupal content management.