Bottle瓶子框架

# -*- coding: utf-8 -*-

from bottle import Bottle, request, HTTPError, HTTPResponse
from bson import ObjectId
from utils.mongodb_tool import db

app = Bottle()


@app.route('/', method=['GET'])
def index():
    return HTTPResponse("index")


# 查全部
@app.get("/plants")
def get_all_plants():
    plants = []
    for each_plant in db.plants.find():
        each_plant['_id'] = str(each_plant['_id'])
        plants.append(each_plant)
    return {"plants": plants}


# 查一条
@app.get("/plant/<plant_id>")
def get_plant(plant_id: str):
    plant_dic = db.plants.find_one({"_id": ObjectId(plant_id)})
    if plant_dic:
        plant_dic["_id"] = str(plant_dic['_id'])
        return plant_dic
    else:
        raise HTTPError(404, '没有找到数据!')


# 添加
@app.post("/plant/add")
def add_plant():
    plant_dict = request.json
    result = db.plants.insert_one(plant_dict)
    plant_dict["_id"] = str(result.inserted_id)
    return plant_dict


# 修改
@app.put("/plant/edit/<plant_id>", method=['PUT'])
def edit_plant(plant_id):
    plant_dict = request.json
    result = db.plants.update_one({"_id": ObjectId(plant_id)}, {"$set": plant_dict})
    if result.modified_count == 1:
        plant_dict['_id'] = plant_id
        return plant_dict
    else:
        raise HTTPError(404, '没有找到数据!')


# 删除一条

@app.delete("/plant/delete/<plant_id>")
def delete_plant(plant_id):
    result = db.plants.delete_one({"_id": ObjectId(plant_id)})
    if result.deleted_count == 1:
        return {"message": "删除成功!"}
    else:
        raise HTTPError(404, '没有找到数据!')


if __name__ == '__main__':
    app.run(host="localhost", port=9010, debug=True)

posted @   染指未来  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示