To be fair, express is a production server itself whereas werkzeug is not, so you need to add something like gunicorn or uwsgi (yeah I know nginx supports uwsgi_pass natively). click is not necessary in production though (it's only used in the dev CLI).
That said, 4 dependencies is the norm in Python land, whereas 13 dependencies is an outlier in JS land.
Edit: oops, misread, gp said express has 51 deps, not 13.
I see 4 dependencies in the setup.py, and they are all from the same team of maintainers (i.e the Pallet team):
- Werkzeug
- Jinja2
- itsdangerous
- click
https://github.com/pallets/flask/blob/master/setup.py
https://github.com/pallets/flask/network/dependencies