A basic FastAPI backend projects to get my hand dirty on it.
TODO
You'll need python@3.8, pipenv and postgresql@13 installed on your system to run the project.
Run the following command to install all the project dependencies.
pipenv installMake sure your local PostgreSQL server is running on http://localhost:5432. Then, create a new database called fastapi_db.
psql postgres
postgres=create database fastapi_trains;Note: If you have a different database URL, set it in the .env environment file.
Now, run the prestart.sh script that'll create the tables and add initial data.
sh prestart.sh
```r
If there are any changes to the `SQLALCHEMY_DATABASE_URI` key in the `.env` file, please run the `prestart.sh` script again.
### Running
After all the above mentioned steps, you can start the application using the following command:
```shell script
python -m app.mainThe application will be available at https://localhost:8000.
TODO
If there are any changes to the SQLAlchemy ORM models, you can run the following command to generate alembic migrations.
alembic revision --autogenerate -m "<migration message>"This command will generate a new migration file in the migrations directory. Remember to check the generated migration file before committing.
The application unit tests are inside the app/tests module.
Run the following command in the terminal to execute the application unit tests.
pytest app/testsThe application can be deployed in production using gunicorn, you don't need to make any code changes for the same.
Head over to the Uvicorn Deployment documentation for complete instructions.
- FastAPI - The API framework used
- SQLAlchemy - Database ORM
- Pipenv - Dependency and virtual environment manager
- R Dhoot - Initial work - dhoot
TODO