Django版的数据库配置如下:
DATABASES = {"default": {"ENGINE": "django.db.backends.mysql","NAME": "test_1","USER": "root","PASSWORD": "123456","HOST": "localhost","PORT": "3306",}
}
参考tortoise-orm的文档转换后如下:
mysql://root:123456@localhost:3306/test_1
注:如果密码里含有特殊字符,需要使用标准库urllib.parse.quote_plus进行转义
也可以使用tortoise-database-url进行自动转换,用法如下:
1. 安装
pip install tortoise-database-url
2. 在命令行中使用
python -c "
import database_url
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'test_1','USER': 'root','PASSWORD': '123456@2024','HOST': 'localhost','PORT': '3306',}
}
print(database_url.from_django_item(DATABASES['default']))
"
# mysql://root:123456%402024@localhost:3306/test_1
3. 代码中使用
import osimport database_url # pip install tortoise-database-urlDATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'test_1','USER': os.getenv('DB_USER', 'root'),'PASSWORD': os.getenv('DB_PASS', '123456'),'HOST': os.getenv('DB_HOST', 'localhost'),'PORT': os.getenv('DB_PORT', '3306'),}
}
DB_URL = database_url.from_django_item(DATABASES['default'])
TORTOISE_ORM = {'connections': {'default': DB_URL},'apps': {'models': {'models': ['app.models', 'aerich.models'],'default_connection': 'default',},},
}
更多用例见:https://github.com/waketzheng/database-url/blob/main/tests/test_main.py