注册

【python语言】使用sqlalchemy,Insert失败

好名字 2023/12/01 628 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:Windows10 专业版 22H2
【CPU】:12th Gen Intel(R) Core(TM) i5-12500 3.00 GHz
【问题描述】*:仿照官网上python的例子,重新写了一个model,但是插入数据的时候报错
model定义: Product.py

# coding: utf-8
from sqlalchemy import Column, Integer, String, Date, Numeric, Text
from sqlalchemy.ext.declarative import declarative_base

# 创建对象的基类:
Base = declarative_base()
class test(Base):
    # 表的名字:
    __tablename__ = 'test'
    # 表的结构:
    ID = Column(Integer, autoincrement=True, primary_key=True)
    USER = Column(String(20))

查询界面代码: dm_sqlalchemy.py

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from Product import Product, test

def main():
    # dialect 是SQLAlchemy用来与各种类型的DBAPI和数据库通信的系统。
    conn_url = 'dm+dmPython://BOOKSHOP:bookshop123@127.0.0.1:5236'
    # 创建Engine对象
    engine = create_engine(conn_url)
    # 创建DBSession对象
    DBSession = sessionmaker(bind=engine)
    test_select(DBSession)
    fun_insert_test(DBSession)

def test_select(DBSession):
    # 创建Session
    session = DBSession()
    # 查询所有的
    list_product = session.query(test).all()
    print('查询所有结果:')
    for product in list_product:
        print(product.ID, product.USER)
    print('')
    session.close()


def fun_insert_test(DBSession):
    session = DBSession()
    new_test = test()
    print('-------------------')
    print(new_test)
    new_test.USER = '水浒传'
    session.add(new_test)
    session.commit()
    print('插入成功')
    session.close()

if __name__ == '__main__':
    main()

运行后,查询是可以的,但是插入的时候报错
23342134.png

我的model完全是按着实例来写的,而且也创建在BOOKSHOP这个模式下,和示例不一样的地方是通过图形界面创建。不知道哪里的问题,恳请指正!

回答 0
暂无回答
扫一扫
联系客服