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

企业建设网站需注意哪些内容做网站产品介绍

企业建设网站需注意哪些内容,做网站产品介绍,网站建设管理流程,主机宝 建设网站FastAPISQLAlchemy数据库连接 目录 FastAPISQLAlchemy数据库连接配置数据库连接创建表模型创建alembic迁移文件安装初始化编辑env.py编辑alembic.ini迁移数据库 视图函数查询 配置数据库连接 # db.py from sqlalchemy import create_engine from sqlalchemy.orm import sessio…

FastAPI+SQLAlchemy数据库连接

目录

  • FastAPI+SQLAlchemy数据库连接
    • 配置数据库连接
    • 创建表模型
    • 创建alembic迁移文件
      • 安装+初始化
      • 编辑env.py
      • 编辑alembic.ini
      • 迁移数据库
    • 视图函数查询

配置数据库连接

# db.py
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmakerDATABASE_URL = "mysql+pymysql://root:7997@localhost/fastapidemo"engine = create_engine(DATABASE_URL,pool_size=10,            # 设置连接池大小max_overflow=20,         # 设置连接池最大溢出连接数量pool_timeout=30,         # 设置连接超时时间pool_recycle=1800,       # 设置连接的回收时间
)SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

创建表模型

from sqlalchemy import Column, Integer, String, ForeignKey, Table
from sqlalchemy.orm import DeclarativeBase, relationshipclass Base(DeclarativeBase):__abstract__ = True  # 标记为抽象基类,防止直接创建表@classmethoddef get_all(cls, session):return session.query(cls).all()book_press = Table('book_press', Base.metadata,Column('book_id', Integer, ForeignKey('book.id'), primary_key=True),Column('press_id', Integer, ForeignKey('press.id'), primary_key=True))class Book(Base):__tablename__ = 'book'id = Column(Integer, primary_key=True, autoincrement=True)title = Column(String(15), nullable=False, unique=True)author_id = Column(Integer, ForeignKey('author.id'))author = relationship('Author', backref='books', cascade='all,delete')press = relationship('Press', backref='books', secondary=book_press)class Author(Base):__tablename__ = 'author'id = Column(Integer, primary_key=True, autoincrement=True)name = Column(String(15), nullable=False, unique=True)age = Column(Integer, nullable=False)class Press(Base):__tablename__ = 'press'id = Column(Integer, primary_key=True, autoincrement=True)name = Column(String(15), nullable=False, unique=True)if __name__ == '__main__':from db import engineBase.metadata.create_all(engine)

创建alembic迁移文件

安装+初始化

pip install alembic
alembic init alembic

编辑env.py

# env.py
from logging.config import fileConfig
from sqlalchemy import engine_from_config
from sqlalchemy import pool
from alembic import context# 导入你的 Base 和模型
from module import Base, Book, Author, Pressconfig = context.config# 默认None 替换成你的Base
target_metadata = Base.metadata
# 其他配置...

编辑alembic.ini

# alembic.ini
sqlalchemy.url = mysql+pymysql://root:7997@localhost/fastapidemo

迁移数据库

alembic revision --autogenerate
alembic upgrade head

视图函数查询

# main.py
from fastapi import FastAPI, Request, Depends
from pydantic import BaseModel
from sqlalchemy.orm import Sessionfrom db import SessionLocal
from orm import Authorapp = FastAPI()
session = SessionLocal()def get_db():db = SessionLocal()try:yield dbfinally:db.close()class Item(BaseModel):pass@app.get("/api/")
async def root(db: Session = Depends(get_db)):# 直接用session查询res = db.query(Author).all()# 调用模型类的方法查询res2 = Author.get_all(db)print(res[0].name)print(res2[0].name)return {f"作者名:{res[0].name},{res2[0].name}"}
http://www.yayakq.cn/news/871939/

相关文章:

  • 设计素材网站源码一个女装店网站建设的策划模板
  • 网站动态页面网络书城网站开发 需求分析
  • js 访问网站统计刷新不增加次数网站快速备案安全
  • 建设网站的市场机会在哪个网站做跨境电商
  • 做网站时 404网页如何指向定手机网站建设
  • 如何做网站走查做金融在那个网站上找工作
  • 公司网站开发费用济南兴田德润简介图片asp.net网站开发视频教程
  • 即墨市城乡建设局网站安顺网站建设兼职
  • 好的手机端网站模板下载绵阳观察怎么登录不上
  • 基木鱼建站教程重庆森林百度云
  • 怎么做冒牌网站南宁网站设计方案
  • 汕头网络公司网站建设实战营销型网站建设
  • 超酷网站模板适合工作室做的项目
  • 备案 几个网站慧聪网seo页面优化
  • 网站卡的原因小程序制作平台排行榜前十名
  • 企业网站的建设与实现论文网站开发亿码酷流量
  • 网站几个数据库家装公司官网
  • 机械类网站用什么做背景有赞和微盟哪个更好用
  • 南京维露斯网站建设天桥网站建设
  • 开发电商网站域名注册哪个最好
  • 怎么建小说网站网站建设维护多少钱
  • 怎样设计网站主页360优化大师下载
  • 迁安做网站中的cms开发设计师导航网址
  • 网站界面设计基础找网站公司做网站是怎样的流程
  • 网站设计合同范本泰州网站建设优化建站
  • 企业网站建设规划书的内容音乐中文网站模板
  • 网站项目需求说明书建设工程公司采购的网站
  • 网站开发 功能不会写自己做的网站怎么爬数据库
  • 建同城购物网站经历怎样自己做商场网站
  • 做网站公司价格唐山做网站的电话