Database name necessary?
Peewee needs to know which database to connect to, so yes, this is a requirement.

Maybe this is a feature improvement, but why does peewee require the database name in the url?

mysql://{username}:{password}@{host}:{port}  gives an error for something like this only in peewee, not sqlalchemy.
