python 带Sqlite数据阳极的Taipy核心未连接

9udxz4iz  于 2023-03-11  发布在  Python
关注(0)|答案(2)|浏览(167)

我试图让Taipy内核与Sqlite一起工作,但没有成功。Taipy似乎无法连接。
有人能举个小例子吗?
问候你马库斯
我已尝试使用以下设置进行连接:

  • 用户名和密码
  • 数据库名称:taipy和taipy.db
  • 数据库引擎:sqlite
  • 导入sqlite3和不导入sqlite3
sales_history_cfg = Config.configure_sql_data_node(
    id="sales_history",
    db_username="",
    db_password="",
    db_name="taipy",
    db_engine="sqlite",
    read_query="SELECT * from sales",
    write_query_builder=write_query_builder
)

# Configuration of tasks
task_cfg = Config.configure_task("double",
    double,
    sales_history_cfg,
    output_data_node_cfg)

# Configuration of the pipeline and scenario
pipeline_cfg = Config.configure_pipeline("my_pipeline", [task_cfg])
scenario_cfg = Config.configure_scenario("my_scenario", [pipeline_cfg])

# Run of the Core
tp.Core().run()
ubby3x7f

ubby3x7f1#

我假设你使用的是taipy版本2.1.3,这是今天最新的版本。
您所面临的错误是应该在数据节点的配置中提供db_extra_args,空字典应该可以工作。
我注意到您的代码中存在3个其他(潜在)问题:
1.缺少分号““;“在SQL查询的结尾。
1.缺少路径参数。它应该指向包含SQLite数据库文件的文件夹。如果没有提供路径,Taipy将在根文件夹中搜索它。(在我的示例中,我的数据库存储在文件“../data/sqlite/taipy.db”中)

  1. db_name应该包含文件扩展名(在我的示例中是“taipy.db”)
    下面是我用来使您的代码在我的环境中工作的代码。我以前在数据库“../data/sqlite/taipy.db”中创建了一个sales表(CREATE TABLE sales (date int, nb_sales int);)。
from taipy import Config
import taipy as tp
import pandas as pd

def double(data):
    return "WHATEVER"

def write_query_builder(data: pd.DataFrame):
    insert_data = list(
        data[["date", "nb_sales"]].itertuples(index=False, name=None))
    return [
        "DELETE FROM sales;",
        ("INSERT INTO sales VALUES (?, ?);", insert_data)
    ]

sales_cfg = Config.configure_sql_data_node(
    id="sales_history",
    db_username="",
    db_password="",
    db_extra_args={},
    db_name="taipy.db",
    db_engine="sqlite",
    read_query="SELECT * from sales;",
    write_query_builder=write_query_builder,
    path="../data/sqlite/"
)

output_data_node_cfg = Config.configure_data_node(id="output")

# Configuration of tasks
task_cfg = Config.configure_task("double", double, sales_cfg, output_cfg)

# Configuration of the pipeline and scenario
pipeline_cfg = Config.configure_pipeline("my_pipeline", [task_cfg])
scenario_cfg = Config.configure_scenario("my_scenario", [pipeline_cfg])

# Run of the Core
tp.Core().run()

请注意,如果不需要db_extra_args,那么在下一个版本2.2中就没有必要再提供空字典了(目标发布日期是2023年5月)。还计划对2.2进行文档增强,特别是为所有受支持的db_engines(SQLite、mssql、MySQL或PostgreSQL)提供更多示例。

hgncfbus

hgncfbus2#

您以前是否使用此用户名、密码和名称创建过SQL数据库?Taipy可以帮助您连接到已经存在的SQL数据库,但不会为您创建数据库。然后,您可以像使用其他Data Node一样使用它,并具有Taipy Core的所有功能。
使用云提供程序或其他工具创建数据库有许多不同的方法。您可以在here中找到一些信息。

相关问题