ValueError: invalid literal for int() with base 10: 'f5W1vg'
Well, for one, that's quite an old version of Peewee.

The other issue is the use of "#" in the password. Peewee's db_url module uses the stdlib url parsing library, which seems to choke on the "#" in the password for whatever reason.

I'd suggest opening a bug on the Python bug-tracker, if one does not exist.

For Peewee, you'll need to figure out a workaround or just avoid the db_url module in this case.
peewee 2.8.2
python 2.7.5

```python
from playhouse.db_url import connect

db_url = "mysql://root:f5W1vg##123@127.0.0.1:3306/demo"
db = connect(db_url)

```

```
Traceback (most recent call last):
    db = connect(db_url)
  line 85, in connect
    connect_kwargs = parseresult_to_dict(parsed)
  line 49, in parseresult_to_dict
    if parsed.port:
    port = int(port, 10)
ValueError: invalid literal for int() with base 10: 'f5W1vg'
```
maybe password include some not support chart ?
