What is the difference between the Behave tables you can write in BDD (see python-behave) and model-based testing?
Such tables seem to generate a model for your test which you can use to test your system with.
You are comparing Behave Tables you can write using python-behave and model-based testing.
They are not really comparable, in an analogy, comparing Behave Tables with model-based testing is like comparing Fish & Chips with Asian cuisine.
Below is an example I managed to find:
Scenario: Setup Table
Given a set of specific users:
| name | department |
| Barry | Beer Cans |
| Pudey | Silly Walks |
| Two-Lumps | Silly Walks |
"user.CallFunctionX()", you can write
Barry picks up Beer Cans. BDD's objective is to save technical details from non-technical staff such as business analysts by providing high level human-readable keywords.
It is a different testing approach from BDD.
Common practice is to use some kind of automated tool to generate an abstract model of the system under test. Then based on this abstract model, decide what to test and how to test(including using BDD as a technique).