Tornado 查询数据库
时间: 2024-04-24 12:25:45 浏览: 96
一个简单的持久化Web服务-latex华东师大教程
在 Tornado 中查询数据库通常需要使用一个适合的 ORM(对象关系映射)库来简化操作。下面是使用 Tornado 和 SQLAlchemy 进行数据库查询的示例代码:
首先,确保已经安装了 SQLAlchemy 和 Tornado:
```bash
pip install SQLAlchemy tornado
```
然后,创建一个数据库连接和模型类:
```python
import tornado.ioloop
import tornado.web
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
```
接下来,创建一个 Tornado 的 RequestHandler 类来处理查询请求:
```python
class MainHandler(tornado.web.RequestHandler):
def initialize(self, db):
self.db = db
def get(self):
session = self.db()
users = session.query(User).all()
session.close()
self.write({'users': [user.name for user in users]})
```
最后,创建一个 Tornado 应用并启动:
```python
if __name__ == "__main__":
engine = create_engine('sqlite:///test.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
app = tornado.web.Application([(r"/", MainHandler, dict(db=Session))])
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
```
这个例子使用了 SQLite 数据库,并创建了一个名为 "users" 的表。当访问根路径时,会查询所有用户并返回用户列表。
这只是一个简单的示例,实际上,你可以根据自己的需求和数据库类型进行更复杂的查询操作。
阅读全文