python:Fastapi - 更大的应用 - 多个文件

本文介绍了使用FastAPI构建多文件应用的工程目录结构,包括数据库连接、接口定义、模型和鉴权。讲解了各文件的作用,如数据库模型、接口操作、鉴权验证,并提供了启动服务和请求接口的方法。通过代码解读,帮助理解FastAPI的项目组织方式。
摘要由CSDN通过智能技术生成

书接上文,上篇文章唠了SQL(关系)数据库,今天主要是唠下多文件,也就是对应的工程目录的应用开发。

工程目录概述

  • admin - 文件夹是作者规划的后台接口,可忽略
  • model - 文件夹是主要存放数据库表
  • routers - 文件夹也是作者规划的存放接口的,后续的实践接口也写在这里
  • schemas - 文件夹是存放的一些接口的模型
  • sql - 文件夹是存放一些基于sqlalchemy的查询方法
  • databases.py - 文件是数据库的连接操作,这里是使用的sqlite.db
  • dependencies.py - 文件是鉴权,也就是验证登录的,这里是写死的,主要是用于实践
  • main.py - 文件是程序主入口,也就是运行这个文件,整个应用就运行起来了
  • sc_database.db - 就是数据库

代码简单解读


./sc_app/model/user_models.py

from sqlalchemy.orm import relationship
from sc_app.databases import BASE
from sqlalchemy import Boolean, Column, Integer, String, ForeignKey

__all__ = [
    "Users",
    "Items"
]


class Users(BASE):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True, index=True)
    username = Column(String, unique=True, index=True)
    password = Column(String)
    is_active = Column(Boolean, default=True)

    items = relationship("Items", back_populates="owner")


class Items(BASE):
    __tablename__ = "sc_items"

    id = Column(Integer, primary_key=True, index=True)
    title = Column(String, index=True)
    description = Column(String, index=True)
    owner_id = Column(Integer, ForeignKey("users.id"))

    owner = relationship("Users", back_populates="items")

信息注释:

  • 这里是定义了两个表,也是基于sqlalchemy操作的,后续会总结一篇sqlalchemy的操作文章

./sc_app/routers/ro_user.py

from fastapi import Depends
from fastapi import APIRouter
from fastapi import HTTPE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值