我在我的网络项目中使用SQlAlchemy.我应该使用scoped_session(session_maker())或plain session_maker()以及为什么?或者我应该使用其他东西?
## model.py
from sqlalchemy import *
from sqlalchemy.orm import *
engine = create_engine('mysql://dbUser:dbPassword@dbServer:dbPort/dbName',
pool_recycle=3600, echo=False)
metadata = MetaData(engine)
Session = scoped_session(sessionmaker())
Session.configure(bind=engine)
user = Table('user', metadata, autoload=True)
class User(object):
pass
usermapper = mapper(User, user)
## some other python file called abc.py
from models import *
def getalluser():
session = Session()
session.query(User).all()
session.flush()
session.close()
## onemore file defg.py
from models import *
def updateuser():
session = Session()
session.query(User).filter(User.user_id == '4').update({User.user_lname: 'villkoo'})
session.commit()
session.flush()
session.close()
Run Code Online (Sandbox Code Playgroud)
我为每个请求创建一个session = Session()对象,然后关闭它.我做对了还是有更好的方法吗?
我需要在sqlalchemy中找到这个查询的等价物.
SELECT u.user_id, u.user_name, c.country FROM
table_user u , table_country c WHERE u.user_email = 'abc@def.com'
Run Code Online (Sandbox Code Playgroud)
我试过以下代码:
session.query(User).join(Country.country).filter(User.user_email == 'abc@def.com').first()
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
AttributeError: 'ColumnProperty' object has no attribute 'mapper'
Run Code Online (Sandbox Code Playgroud)
任何人都可以给映射到新类对象的表提供连接查询的示例吗?
我需要在64位ubuntu/linux中安装pymongo.但下载只适用于Windows和Mac.这是一个生产设置.
任何人都知道在哪里下载.
让我保持简单,SQLAlchemy 中是否有 mysql 函数 unix_timestamp(datetime) ?或者有什么解决方法吗?