The hello world plugin tutorial kind of covers it. If you were to put your code up on GitHub or make available to review it might help us assist you in where things may not be linked up right. The python compatibility bit you mention is probably just missing a line like this.
here my git with the sample code
i am trying to activate an extrator pump/motor via the gpio ( i know about the octorelay) but i need other things... but the 1st thing is getting the button to work with octoprint
i know... it was just a test ,,, and sure unufe .... does not render
also i have created a new project where i was able to create a "config" page and when i add some text... anything to the sketeton.settings.jinga2 file the page will not render and it will put the plugin in incompatible mode.
although if your plugin_identifier is myplugin, and the file is named myplugin_settings.jinja2 it will autoload in the UI without the get_template_configs call.
but looking at your code, you're using jinja templating to try to change values, and that is really where the knockout binding stuff comes into play. Let me see if I can possibly provide you with a simple example of a plugin that has both settings and a navbar and you can see if you can make sense of it.
Take note that my get_template_configs call does not include the template file name like above. That's because they are named matching after the pattern <plugin_identifier>_<plugin_type>.jinja2.
The part that glues the backend to the frontend is the js file, and it's critical that your binding elements are configured correctly.