Sqlalchemy. Exc. Argumenterror: Could Not Parse Rfc1738 Url from String

I'm learning flask web microframework and after initialization of my database I run flask db init I run flask db migrate, to migrate my models classes to the database and i got an error. I work on Windows 10, the database is MySQL, and extensions install are flask-migrate, flask-sqlalchemy, flask-login.

(env) λ flask db migrate
Traceback (most recent call last):
  File "c:\python36\Lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python36\Lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\aka\Dev\dream-team\env\Scripts\flask.exe\__main__.py", line 9, in <module>
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\flask\cli.py", line 513, in main
    cli.main(args=args, prog_name=name)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\flask\cli.py", line 380, in main
    return AppGroup.main(self, *args, **kwargs)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\click\core.py", line 697, in main
    rv = self.invoke(ctx)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\click\core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\click\core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\click\core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\click\decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\flask\cli.py", line 257, in decorator
    return __ctx.invoke(f, *args, **kwargs)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\flask_migrate\cli.py", line 90, in migrate
    rev_id, x_arg)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\flask_migrate\__init__.py", line 197, in migrate
    version_path=version_path, rev_id=rev_id)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\alembic\command.py", line 176, in revision
    script_directory.run_env()
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\alembic\script\base.py", line 427, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\alembic\util\pyfiles.py", line 81, in load_python_file
    module = load_module_py(module_id, path)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\alembic\util\compat.py", line 83, in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "migrations\env.py", line 87, in <module>
    run_migrations_online()
  File "migrations\env.py", line 70, in run_migrations_online
    poolclass=pool.NullPool)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\sqlalchemy\engine\__init__.py", line 465, in engine_from_config
    return create_engine(url, **options)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\sqlalchemy\engine\__init__.py", line 424, in create_engine
    return strategy.create(*args, **kwargs)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\sqlalchemy\engine\strategies.py", line 50, in create
    u = url.make_url(name_or_url)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\sqlalchemy\engine\url.py", line 211, in make_url
    return _parse_rfc1738_args(name_or_url)
  File "c:\users\aka\dev\dream-team\env\lib\site-packages\sqlalchemy\engine\url.py", line 270, in _parse_rfc1738_args
    "Could not parse rfc1738 URL from string '%s'" % name)
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string 'mysql/dt_admin:dt2016@localhost/dreamteam_db'
2

5 Answers

You are not using a valid URL in the connection string.

Review the documentation on how the MySQL connection URLs need to be structured: .

Depending on the MySQL driver that you use the connection URL is different. For example, if you use pymysql, your URL should be:

mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
5

i'd forget the port number to enter the port, this is the URL connection string:

`SQLALCHEMY_DATABASE_URI = 'mysql://dt_admin:dt2016@localhost:3308/dreamteam_db'

it work now, thanks

make sure that there is no space or newline in the URI string

URL in the connection string is not valid.

you can check the documentation on how the MySQL connection URLs need to be structured here : .

Example syntax for postgresql with psycopg2 driver it look like this :-

sql_alchemy_conn = postgresql+psycopg2://ubuntu@localhost:5432/airflow

just had to remove the quotes

I was using like that:

sql_alchemy_conn = 'postgresql://user:password@host:port/db'

And this worked:

sql_alchemy_conn = postgresql://user:password@host:port/db

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Elena Rostova

Elena Rostova

Lead Health, Wellness & Medical Journalist

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.

Share this article
Twitter Facebook Pinterest