Skip to content

A template repository to start your FastAPI backend projects.

License

Notifications You must be signed in to change notification settings

urjeetpatel/fastapi-boilerplate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI Boilerplate

A template to start on FastAPI backend projects. This template has now been updated to include AsyncIO.

Features

  • Includes an example Product model implemented as Async and Synchronous side by side.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

You'll need python@3.8, pipenv and postgresql@12 installed on your system to run the project.

Installing

Run the following command to install all the project dependencies.

pipenv install

Make 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_db;

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.

./prestart.sh

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:

python -m app.main

The application will be available at https://localhost:8000.

Development

These instructions will provide you some useful information on developing this application.

Migrations

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.

Testing

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/tests

Deployment

The 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.

Built With

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details

About

A template repository to start your FastAPI backend projects.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Python 96.5%
  • Mako 2.9%
  • Shell 0.6%