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框架 模板引擎

模板引擎是一个旨在将模板与数据模型结合以生成结果文档的库。默认情况下,Bottle 使用自带的简单的模板引擎。$ mkdir botview && cd botview$ mkdir views ...