代码之家  ›  专栏  ›  技术社区  ›  Joshkunz

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

  •  0
  • Joshkunz  · 技术社区  · 16 年前

    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
    

    from sqlalchemy.engine import create_engine
    from sqlalchemy import schema, types
    
    metadata = schema.MetaData()
    
    haiku_table = ('haiku', metadata,
                   schema.Column('title', types.Text(), primary_key=True),
                   schema.Column('haiku', types.Text()),
                   schema.Column('genre', types.Text()),
                   schema.Column('author', types.Text())
                   )
    
    engine = create_engine('sqlite:///F:\\MyKu\\myku\\haiku')
    metadata.bind = engine
    
    metadata.create_all(checkfirst=True)
    

    我毫无头绪

    1 回复  |  直到 16 年前
        1
  •  1
  •   Bartek    16 年前

    好吧,看起来你在创造 haiku_table

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

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

    您需要导入 Table

    推荐文章