Basic
```python
└── test_app
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
```
## database.py
```python
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:mysql123456@localhost:3306/test"
# SQLALCHEMY_DATABASE_URL = "sqlite:///./sql_app.db"
# SQLALCHEMY_DATABASE_URL = "postgresql://user:password@postgresserver/db"
engine = create_engine(
SQLALCHEMY_DATABASE_URL
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
```
## models.py
```python
from sqlalchemy import Boolean, Integer, Column, String
from database import Base
class M_Car(Base):
__tablename__ = "car"
id = Column(Integer, primary_key=True, index=True)
name = Column(String(10))
price = Column(Integer)
```
## schemas.py
```python
from pydantic import BaseModel
class Car(BaseModel):
id: int
name: str
price: int
class Config:
orm_mode = True
```
## main.py
```python
from typing import List
from fastapi import Depends, FastAPI, HTTPException
from sqlalchemy.orm import Session
import crud, models, schemas
from database import SessionLocal, engine
models.Base.metadata.create_all(bind=engine)
app = FastAPI()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.get("/")
def create_database():
return {"Database": "Created"}
@app.get("/car")
def create_database(car_id: int,
response_mode=schemas.Car,
db: Session = Depends(get_db)):
return crud.get_car(db=db, car_id=car_id)
```