我是FastAPI世界的新手,我正在创建一个API来获取数据并将数据发布到MySQL数据库。我在互联网上跟踪了几个链接,并开发了下面的代码
DatabaseConnection.py
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
sql_database_url="mysql://root:root@localhost:3306/first_db"
engine=create_engine(sql_database_url)
sessionLocal=sessionmaker(autocommit=False,bind=engine)
base=declarative_base()MainClass.py
from fastapi import FastAPI,Query,Depends
from sqlalchemy import Column,String,Integer
from typing import Optional,List
from pydantic import BaseModel
from sqlalchemy.orm import Session
from DatabaseConnection import engine,sessionLocal,base
app=FastAPI()
class User(base):
__tablename__="users"
id=Column(Integer,primary_key=True,index=True)
name=Column(String(255),unique=True,index=True)
class UserSchema(BaseModel):
id:int
name:str
class Config:
orm_model=True
base.metadata.create_all(bind=engine)
@app.post("/create-user")
def createUser(userSchema:UserSchema):
user=User(id=userSchema.id,name=userSchema.name)
sessionLocal().add(user)
sessionLocal().commit()
return user当我尝试使用UVICorn运行这个API时,我成功地运行了,而且表也成功创建了,但是我要通过正文发送的数据没有添加到表中。
该表显示添加了空值\
我已经提到了链接
任何帮助都将不胜感激。提前感谢
发布于 2022-01-10 05:53:22
发布于 2022-01-09 07:17:31
您没有将更改提交到数据库。只需像下面这样修改您的代码就可以了。
# ... imports and other stuff
from DatabaseConnection import sessionLocal
@app.post("/create-user")
def createUser(userSchema:UserSchema):
user = User(id=userSchema.id, name=userSchema.name)
with sessionLocal() as session:
session.add(user)
session.commit()
return userhttps://stackoverflow.com/questions/70631647
复制相似问题