My main app code:
from fastapi import FastAPI, HTTPException, Depends
from typing_extensions import Annotated
from sqlalchemy.orm import Session
from pydantic import BaseModel
from database import SessionLocal, engine
import models
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
origins = [
'htpp://localhost:3000'
]
app.app_middleware(
CORSMiddleware,
allow_origins=origins,
)
class TransactionBase(BaseModel):
amount: float
category: str
description: str
is_income: bool
date: str
class TransactionModel(TransactionBase):
id: int
class config:
orm_mode = True
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
db_dependency = Annotated[Session, Depends(get_db)]
models.Base.metadata.create_all(bind=engine)
@app.post("/transactions/", response_model=TransactionModel)
async def create_transaction(transaction: TransactionBase, db: db_dependency):
db_transaction = models.Transaction(**transaction.dict())
db.add(db_transaction)
db.commit()
db.refresh(db_transaction)
return db_transaction
Im trying to make fastapi application using sqlalchemy database, but after reloading uvirocn main app terminal show me this error:
Process SpawnProcess-1:
Traceback (most recent call last):
File "/home/przemek/.pyenv/versions/3.6.15/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/home/przemek/.pyenv/versions/3.6.15/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/przemek/FastAPI-React-App/env/lib/python3.6/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
target(sockets=sockets)
File "/home/przemek/FastAPI-React-App/env/lib/python3.6/site-packages/uvicorn/server.py", line 67, in run
return asyncio.run(self.serve(sockets=sockets))
AttributeError: module 'asyncio' has no attribute 'run'
Im using virtual environment with python 3.10.12.
I was expecting a start of localhost on port 3000 in my browser.
New contributor
wudjitzu is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.