FastAPI - 数据库操作5

先安装mysql驱动程序

pipenv install pymysql

安装数据库ORM库SQLAlchemy

pipenv install SQLAlchemy

修改文件main.py文件内容

设置数据库连接

# -*- coding:utf-8 –*-
from fastapi import FastAPI

from sqlalchemy import create_engine

HOST = '192.168.123.228'
PORT = 3306
USERNAME = 'root'
PASSWORD = '123456'
DATABASE = 'fenxiangyin'

db_url = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}"
engine = create_engine(db_url)

初始化会话工厂

from sqlalchemy.orm import sessionmaker
engine = create_engine()
SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = SessionFactory()

定义Base类:映射到数据表的ORM类

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

构建模型层

from sqlalchemy import Boolean, Column, ForeignKey, Integer, String


class User(Base):
    __tablename__:str = "user"

    id = Column(Integer, primary_key=True)
    username = Column('username',String, unique=True, index=True)
    password = Column('password',String)

执行增删改查操作

app = FastAPI()

#新增
@app.get("/user/add")
async def user_add():
    user1 = User(username="vvv", password="123")
    session.add(user1)
    session.commit()
    return user1.id


#修改
@app.get("/user/update")
async def user_update():
    user1 = session.query(User).filter(User.id == 1).first()
    user1.password = "456"
    session.commit()
    return True

#删除
@app.get("/user/delete")
async def user_find():
    user1 = session.query(User).filter(User.id == 1).first()
    session.delete(user1)
    session.commit()
    return True

完整代码

# -*- coding:utf-8 –*-
from fastapi import FastAPI

from sqlalchemy import create_engine

HOST = '192.168.123.228'
PORT = 3306
USERNAME = 'root'
PASSWORD = '123456'
DATABASE = 'fenxiangyin'

db_url = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}"

from sqlalchemy.orm import sessionmaker

engine = create_engine(db_url)
SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = SessionFactory()

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

from sqlalchemy import Boolean, Column, ForeignKey, Integer, String


class User(Base):
    __tablename__:str = "user"

    id = Column(Integer, primary_key=True)
    username = Column('username',String, unique=True, index=True)
    password = Column('password',String)



app = FastAPI()

#新增
@app.get("/user/add")
async def user_add():
    user1 = User(username="vvv", password="123")
    session.add(user1)
    session.commit()
    return user1.id

#修改
@app.get("/user/update")
async def user_update():
    user1 = session.query(User).filter(User.id == 1).first()
    user1.password = "456"
    session.commit()
    return True

#删除
@app.get("/user/delete")
async def user_find():
    user1 = session.query(User).filter(User.id == 1).first()
    session.delete(user1)
    session.commit()
    return True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值