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 3f2cb1cd21cd
to 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