python3 -m venv <name>
ex: python3 -m venv venv
source venv/bin/activate
pip install "fastapi[standard]"
fastapi dev app/main.py
or
uvicorn main:app
uvicorn main:app --reload
http://127.0.0.1:8000/docs http://127.0.0.1:8000/redoc
pip install psycopg2
# app/main.py
try:
conn = psycopg2.connect(
host="localhost",
database="fastapi",
user="postgres",
password="",
cursor_factory=RealDictCursor
)
cursor = conn.cursor()
print("Database connection was successful")
except Exception as error:
print("Connecting to database failed")
print("Error: ", error)- Create
app/main.py - Create
__init__.py
Using ORM
pip install sqlalchemy
- Create 'app/database.py'
- Create 'app/models.py'
- Create 'app/schemas.py'
pip freeze
pip install email-validator
pip install 'passlib[bcrypt]'
pip install --upgrade bcrypt
pip uninstall bcrypt
pip install bcrypt==4.0.1
pip install 'python-jose[cryptography]'
pip install python-dotenv
user.__dict__ == user.first
pip install alembic
alembic init alembic to init
alembic revision -m 'create notes table' to create migration
alembic upgrade head or alembic upgrade 3f2cb1cd21cdto run migration
alembic downgrade -1 or alembic downgrade 3f2cb1cd21cd to downgrade
alembic current to check status
pip freeze > requirements.txt
pip install -r requirements.txt to install
http://127.0.0.1:8000/docs must be defined api /login with respone key "access_token"
import pdb
pdb.set_trace()
# using
vars(user)
dir(user)Example in app/routers/auth.py
Or we can use Run & Debug configuration in .vscode/launch.json