当前位置:  开发笔记 > 编程语言 > 正文

使用sqlite在sqlalchemy的引擎URL中添加三个斜杠?

如何解决《使用sqlite在sqlalchemy的引擎URL中添加三个斜杠?》经验,为你挑选了1个好方法。

在SQLAlchemy的文档说:

:memory:如果没有文件路径,则sqlite 标识符是默认的。指定sqlite://,别无其他:

# in-memory database
e = create_engine('sqlite://')

但是,我可以使用三个斜杠而不是两个(sqlite:///)吗?还是我可以自己使用:memory:sqlite:///:memory:)?这样一来,我可以在配置文件中定义所有引擎属性,然后执行以下操作:

url = f'{dialect}+{driver}://{username}:{password}@{host}:{port}/{path}'

代替:

url = f'{dialect}+{driver}://{username}:{password}@{host}:{port}{'/' + path if path else ''}'

但是我可以做



1> Markus Meska..:

虽然这不是我所问问题(XY问题?)的直接答案,但我发现了一种“正确”的方法来处理从配置中创建URL字符串。似乎SQLAlchemy已经具有专用于此的内置函数,满足sqlalchemy.engine.url.URL

from sqlalchemy import create_engine
from sqlalchemy.engine.url import URL

configs = {
    'drivername': 'sqlite',
    'username': '',
    'password': '',
    'host': '',
    'port': '',
    'database': ':memory:',
    'query': '',
}

engine = create_engine(URL(**configs))

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有