好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

sqlalchemy soup raw sql update sql example

sqlalchemy soup raw sql update sql example

from sqlalchemy.ext.sqlsoup import SqlSoup

from sqlalchemy import *

import datetime

from elixir import *

db = create_engine("mysql://root:1111t@localhost:3306/search?charset=utf8")#使用前首先要创建数据库

metadata.bind = db

metadata.bind.echo = True

class Product(Entity):

    using_options(tablename='model_product')

    name                        = Field(Unicode(200))

    en_name    = Field(Unicode(200))

    price                       = Field(Float)

    en_price    = Field(Float)

    productid                   = Field(Unicode(200))

    site                        = Field(Unicode(30))

    link                        = Field(Unicode(300))

    smallImage                  = Field(Unicode(300))

    bigImage                    = Field(Unicode(300))

    description                 = Field(UnicodeText)

    en_description              = Field(UnicodeText)

    createdOn                   = Field(DateTime, default=datetime.datetime.now)

    modifiedOn                  = Field(DateTime, default=datetime.datetime.now)

    size                        = Field(Unicode(30))

    en_size                     = Field(Unicode(30))

    weight                      = Field(Unicode(30))

    en_weight                   = Field(Unicode(30))

    wrap                        = Field(Unicode(30))

    en_wrap                     = Field(Unicode(30))

    material                    = Field(Unicode(30))

    en_material                 = Field(Unicode(30))

    packagingCount              = Field(Unicode(30))

    stock                       = Field(Integer)

    location                    = Field(Unicode(30))

    en_location                 = Field(Unicode(30))

    popularity                  = Field(Integer)

    inStock                     = Field(Boolean)

    categories                  = Field(Unicode(30))

    def __repr__(self):

        return '<Global "%s" (%s)>' % (self.codepath, self.storepath)    

setup_all()

create_all()

print "hello"

#更新

#session.query(Product).update({Product.en_name:None}) 

#session.commit()

#session.commit()

#sql语句

soup = SqlSoup(MetaData(db))

rp=soup.bind.execute("select id from model_product")

print len(rp.fetchall())

print "done"

Raw SQL

SqlSoup  works fine with  SQLAlchemy 's  text block support .

You can also access the  SqlSoup 's  engine  attribute to compose SQL directly. The engine's  execute  method corresponds to the one of a DBAPI cursor, and returns a ResultProxy  that has  fetch  methods you would also see on a cursor:

>>> rp = db.bind.execute('select name, email from users order by name')
>>> for name, email in rp.fetchall(): print name, email
Bhargan Basepair basepair+nospam@example.edu
Joe Student student@example.edu
   

The docs for  SqlSoup  in the 0.3 branch are preserved at  SqlSoup 03 . This page describes the 0.4 branch.

Introduction

SqlSoup  provides a convenient way to access database tables without having to declare table or mapper classes ahead of time.

Suppose we have a database with users, books, and loans tables (corresponding to the PyWebOff dataset, if you're curious). For testing purposes, we'll create this db as follows:

>>> from  sqlalchemy  import create_engine
>>> e = create_engine('sqlite:///:memory:')
>>> for sql in _testsql: e.execute(sql) #doctest: +ELLIPSIS
<...

Creating a  SqlSoup  gateway is just like creating an  SQLAlchemy  engine:

>>> from  sqlalchemy .ext. sqlsoup  import SqlSoup
>>> db = SqlSoup('sqlite:///:memory:')

or, you can re-use an existing metadata or engine:

>>> db =  SqlSoup (MetaData(e))

You can optionally specify a schema within the database for your  SqlSoup :

# >>> db.schema = myschemaname



 http://www.sqlalchemy.org/trac/wiki/SqlSoup 

查看更多关于sqlalchemy soup raw sql update sql example的详细内容...

  阅读:34次