书接上文,上篇文章唠了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