code: def render(cls, data={}, view_template=None, layout=None, **kwargs):
          
          if not view_template:
              stack = inspect.stack()[1]
              module = inspect.getmodule(cls).__name__
              module_name = module.split(".")[-1]
              action_name = stack[3]      # The method being called in the class
              view_name = cls.__name__    # The name of the class without View
  
              if view_name.endswith("View"):
                  view_name = view_name[:-4]
              view_template = "%s/%s.html" % (view_name, action_name)
  
          data = data if data else dict()
          data["__"] = cls._context if cls._context else {}
          if kwargs:
              data.update(kwargs)
  
          data["__view_template__"] = view_template
  
          return render_template(layout or cls.LAYOUT, **data)
docs: To render data to the associate template file of the action view
          :param data: The context data to pass to the template
          :param view_template: The file template to use. By default it will map the classname/action.html
          :param layout: The body layout, must contain {% include __view_template__ %}