当前位置: 首页 > news >正文

FastAPI+MongoDB+React实现查询博客详情功能

第一部分:FastAPI 和 MongoDB 后端

确保你的 FastAPI 应用已经配置好,并且 MongoDB 数据库已经运行。以下是完整的后端代码:

# main.py
from fastapi import FastAPI, HTTPException, Depends
from motor.motor_asyncio import AsyncIOMotorClient
from pydantic import BaseModel
from bson import ObjectId
from typing import Optional
from fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()# 允许所有来源访问
app.add_middleware(CORSMiddleware,allow_origins=["*"],allow_credentials=True,allow_methods=["*"],allow_headers=["*"],
)# MongoDB 连接
client = AsyncIOMotorClient("mongodb://localhost:27017")
db = client["blogdb"]
collection = db["blogs"]# 定义博客模型
class Blog(BaseModel):title: strcontent: strauthor: strcreated_at: str# 创建一个博客
@app.post("/blogs/")
async def create_blog(blog: Blog):result = await collection.insert_one(blog.dict())return {"_id": str(result.inserted_id)}# 获取所有博客
@app.get("/blogs/")
async def get_blogs():blogs = await collection.find().to_list(length=100)return [{"_id": str(blog["_id"]), **blog} for blog in blogs]# 通过路径参数获取单个博客
@app.get("/blogs/{blog_id}")
async def get_blog(blog_id: str):blog = await collection.find_one({"_id": ObjectId(blog_id)})if not blog:raise HTTPException(status_code=404, detail="Blog not found")

相关文章:

  • 【Android】cmd命令
  • 使用 FastAPI 和 MongoDB 实现分页查询功能,并在 React 中进行分页展示
  • 《Hadoop 权威指南》笔记
  • LabVIEW车牌自动识别系统
  • 比亚迪全栈自研生态的底层逻辑
  • C语言_函数调用栈的汇编分析
  • 每日c/c++题 备战蓝桥杯(P1002 [NOIP 2002 普及组] 过河卒)
  • 【Mac 从 0 到 1 保姆级配置教程 12】- 安装配置万能的编辑器 VSCode 以及常用插件
  • 外网访问内网海康威视监控视频的方案:WebRTC + Coturn 搭建
  • 微服务架构中如何保证服务间通讯的安全
  • postgres--MVCC
  • MySQL基础面试题集锦
  • ssh -T git@github.com 测试失败解决方案:修改hosts文件
  • 六大设计模式--OCP(开闭原则):构建可扩展软件的基石
  • AUTOSAR图解==>AUTOSAR_TR_AIDesignPatternsCatalogue
  • 从0开始学linux韦东山教程第三章问题小结(3)
  • 微服务架构实战:从服务拆分到RestTemplate远程调用
  • 模型过拟合是什么?
  • springboot3整合SpringSecurity实现登录校验与权限认证
  • 理解反向Shell:隐藏在合法流量中的威胁
  • 因操纵乙烯价格再遭诉讼,科莱恩等四家企业被陶氏索赔60亿
  • 极限拉扯上任巴西,安切洛蒂开启夏窗主帅大挪移?
  • 尹锡悦涉嫌发动内乱案举行第三次庭审
  • 普京提议重启俄乌直接谈判后,特朗普表态了
  • 肖峰读《从塞北到西域》︱拉铁摩尔的骆驼
  • 央行:中国政府债务扩张仍有可持续性