sqlalchemy:AttributeError:“tuple”对象没有属性“insert”

2024-05-29 02:43:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在玩用sqlalchemy和pylons制作一个简单的俳句网站。它基本上需要一个俳句,把它写到数据库中,然后显示俳句。当我从表单中获取数据并尝试将其写入数据库时,问题就出现了,Pylons给出了一个错误:AttributeError:“tuple”对象在我运行这行代码后没有属性“insert”:ins=自我俳句表.insert(值=表单字典)

主代码:

import logging

from pylons import request, response, session, tmpl_context as c
from pylons.controllers.util import abort, redirect_to

from myku.lib.base import BaseController, render
from sqlalchemy.sql import select
import meta
import myku.lib.helpers as h

log = logging.getLogger(__name__)

class IndexController(BaseController):
    def __init__(self):
        self.haiku_table = meta.haiku_table
        self.conn = meta.engine.connect()
        BaseController.__init__(self)

    def index(self, genre, title):
        ss = select([self.haiku_table], self.haiku_table.c.genre==str(genre).lower(),  self.haiku_table.c.title==str(title).lower())
       result = self.conn.execute(ss)
       return result

    def new_haiku(self):
       return render('/newku.html')

    def submit(self):
        title = request.params.get('title')
        haiku = request.params.get('haiku')
        genre = request.params.get('genre')
        author = request.params.get('author')
        form_dict = {'title': title, 'haiku': haiku, 'genre': genre, 'author': author}
        ins = self.haiku_table.insert(values=form_dict)
        result = self.conn.execute(ins)
        return res

以及元文件的代码:

^{pr2}$

有什么想法吗? 我不知道


Tags: 代码fromimportselfgettitlerequestdef
1条回答
网友
1楼 · 发布于 2024-05-29 02:43:14

好吧,看起来您在创建haiku_table,在尝试使用.insert函数之前,没有对它做任何其他操作,而这个函数显然不是元组的一部分

看起来,当您使用SQLAlchemy创建表时,您需要以下格式:

haiku_table = Table('haiku', metadata,
           schema.Column('title', types.Text(), primary_key=True),
           .... etc
           )

您还需要从sqlachlemy模块导入Table。在

这使得俳句表成为SQLAlchemy的一个表实例,而不仅仅是一个元组。我想这就是你所缺少的。在

相关问题 更多 >

    热门问题