FastAPI如何链接数据库

今天来讲一下fastapi如何链接数据库,上一节已经讲过了基本的环境搭建,所以就不在啰嗦了,这里使用的是mysql,基本的mysql环境搭建大家可以自行去网上搜索,这里不再说明,接下来直接上代码:

1、首先需要安装tortoise-orm,我们是通过orm模型去操作数据库,使用orm模型操作的好处是不需要使用sql命令,直接使用函数进行操作,能有效的防止sql注入式攻击,操作也会简洁一些,

pip install tortoise

2、接下来需要在入口文件进行导入和挂载:

from tortoise.contrib.fastapi import register_tortoise
register_tortoise(
    app,
    db_url='mysql://用户名:密码@数据库ip:数据库端口/用户名',
    modules={"models": ["models.user", "models.article"]},
    generate_schemas=True,
    add_exception_handlers=True,
)

这里的路径我给大家标注了一下,自己配置的时候要记得更换哦

剩下的配置分别是:

  • generate_schemas:是否自动创建数据库和表结构,这里设置为 True,表示在启动应用时如果相关表不存在,则会自动创建。
  • add_exception_handlers:是否添加 Tortoise ORM 的异常处理器

这里的app,是我们的fastapi主程序

3、接下来要说明一下modules了,这里的modules是我们存放模型的地方,是使用类来进行创建的表:

from tortoise import Model, fields



class Article(Model):
    userid = fields.IntField()
    id = fields.IntField(pk=True)
    title = fields.CharField(max_length=30)
    content = fields.CharField(max_length=9999)
    createTime = fields.DatetimeField(auto_now_add=True)
    updateTime = fields.DatetimeField(auto_now=True)

这样我们在启动当前服务的时候,就会通过tortoise,来创建一张表了

然后我们就可以这么去操作:

@app.post("/announce", summary='发布文章')
async def article_announce(body: Announce):
        await Article(userid=token, title=body.title, content=body.content).save()
        return JSONResponse(status_code=status.HTTP_200_OK)
    

这就是最简单的往数据库中添加数据了,这里的Announce类呢是:

from pydantic import BaseModel, Field
class Announce(BaseModel):
    title: str = Field(examples=["标题"])
    content: str = Field(examples=["内容"])

这里我们需要从pydantic模型库中去导入我们需要继承的类,以及属性

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值