gpt4 book ai didi

python - 我正在尝试使用 dict 构建一个 sqlalchemy 引擎,该引擎具有从 tkinter 解析到它的变量

转载 作者:行者123 更新时间:2023-11-28 21:14:17 26 4
gpt4 key购买 nike

任何帮助将不胜感激。我有一个使用 sqlalchemy 的连接引擎,它可以完美连接。我想让它动态化,用户在 tkinter 输入框中提供信息,该信息被解析为一个字典,该字典又被一个函数调用,并从那里创建引擎。

我的工作引擎是:

engine =    sqlalchemy.create_engine('postgresql+pg8000://myuser:mypass@localhost/mydb')

我想要这样的东西

sqlalchemy.create_engine('postgresql+pg8000://DBUSER:DBPASS@DBHOST/DBNAME')

其中变量首先由 tkinter Entry 提供并放入字典中,然后由连接函数读取。

我有以下内容

from sqlalchemy import create_engine
from sqlalchemy.engine import url

"""
These vars below are for testing. Ultimately they will be resolved
by a get() from tkinter which will take the values entered by a
user into an Entry widget and place them into the dict below.
The db_connect() func should build the url from the dict.
"""

DBNAME = 'mydb'
DBUSER = 'myuser'
DBPASS = 'password'
DBHOST ='localhost'
PNUM = '5432'
import json
import urllib.request as myurl

DATABASE = {
'drivername': 'postgres+pg8000',
'host': DBHOST,
'port': PNUM,
'username': DBUSER,
'password': DBPASS,
'database': DBNAME
}

def db_connect():
create_engine(url(DATABASE))
"""This func should create the db engine connect


connect = sqlalchemy.create_engine(db_connect())

df = pd.read_sql("SELECT * FROM nc_data",con=connect)

我得到了错误

数据库连接 返回创建引擎(网址(数据库)) 类型错误:“模块”对象不可调用

最佳答案

使用关键字参数将其输入到 sqlalchemy 的 url.URL() 函数中

create_engine(url.URL(**DATABASE))

注意 **,正确的方法是 url.URL(),而不仅仅是 url,如 http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#sqlalchemy.engine.url.URL

** 功能引用:https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists

关于python - 我正在尝试使用 dict 构建一个 sqlalchemy 引擎,该引擎具有从 tkinter 解析到它的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com