I **think** I've found the problem.
I presumed that to create a new table I would 1st define it in the database using a tool like phpLiteAdmin and then in flask-sqlalchemy define the same structure in the models.
I deleted the database and the demo app __init__.py module then recreates it from a backup folder. When I then opened the database in phpLiteAdmin it had now been automatically populated with my new tables defined in Models except it did not use the Models name of "Helpline" but the "help_line" name.
So it seems that I have to leave the actual table names and definitions in the database to flask-sqlalchemy even though my Models definition is using another naming format.
The danger of taking pre-existing code. In my defence ;) the example code supported a 2 hour training video that I did watch. I don't know if this was described or I can't remember it.