Bottle框架 MongoDB 数据库范例
我们在 bottle 框架中,可以使用各种数据库读写数据,比如:mysql、mongodb等。
在以下示例中,我们从 MongoDB 数据库以 JSON 形式返回数据。
create_cars.py
#!/usr/bin/python3 from pymongo import MongoClient cars = [ {'name': 'Audi', 'price': 52642}, {'name': 'Mercedes', 'price': 57127}, {'name': 'Skoda', 'price': 9000}, {'name': 'Volvo', 'price': 29000}, {'name': 'Bentley', 'price': 350000}, {'name': 'Citroen', 'price': 21000}, {'name': 'Hummer', 'price': 41400}, {'name': 'Volkswagen', 'price': 21600} ] client = MongoClient('mongodb://localhost:27017/') with client: db = client.testdb db.cars.insert_many(cars)
使用此脚本,我们创建一个 Mongo 集合。 有关在 Python 中使用 MongoDB 的更多信息,请参考 PyMongo 教程。
bottle_mongo.py
#!/usr/bin/env python3 from bottle import route, run, HTTPResponse from pymongo import MongoClient import json client = MongoClient('mongodb://localhost:27017/') @route('/cars') def getcars(): db = client.testdb cars = list(db.cars.find({}, {'_id': 0})) if cars: return json.dumps(cars) else: raise HTTPResponse(status=204) run(host='localhost', port=8080, debug=True)
该示例从 Mongo 集合返回数据作为 JSON。
client = MongoClient('mongodb://localhost:27017/')
创建一个MongoClient
实例。
db = client.testdb cars = list(db.cars.find({}, {'_id': 0}))
我们从两个字段中检索所有数据; 我们排除_id
字段。
if cars:
return json.dumps(cars)
else:
raise HTTPResponse(status=204)
如果有数据,我们将使用json.dumps()
将其转换为 JSON,然后将其返回给客户端。 否则,我们会发送 204 状态代码。
模板引擎是一个旨在将模板与数据模型结合以生成结果文档的库。默认情况下,Bottle 使用自带的简单的模板引擎。$ mkdir botview && cd botview$ mkdir views ...