DEV Community

Cover image for Create FastAPI App Like pro part-1
Muhammad Ishaque Nizamani
Muhammad Ishaque Nizamani

Posted on • Edited on

1

Create FastAPI App Like pro part-1

install fastapi using following commend

pip install fastapi[all]
Enter fullscreen mode Exit fullscreen mode

Create a project directory named it then start
Step #1: Create a server directory and add an** init.py **file to it. Then, create the following subdirectories within the server directory:

  1. DB: This directory will contain all the code for database connections.
  2. Models: This directory will house the models for all tables.
  3. Routers: This directory will contain all the routers. Ensure that each table has a separate router.
  4. Schemas: This directory will contain all the Pydantic schemas for each table. Ensure that each table has a separate file for its schema.
  5. Utils: This directory will contain utility functions and code. Note: all of the above directory needs file name init.py check this picture to understand file structure

Image description

step#2
create backend.py inside server directory and it should contain following code and adjust it according to your needs

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from server.routers import test_question_router

app = FastAPI(title="Backend for Tip for fastapi", version="0.0.1",docs_url='/')


app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_methods=["*"],
    allow_headers=["*"],
    allow_credentials=True,
)

app.include_router(your_router.router)

@app.get("/ping")
def health_check():
    """Health check."""

    return {"message": "Hello I am working!"}

Enter fullscreen mode Exit fullscreen mode

Step#3
then Create file name
run.py out side the server directory
add following code

import os

import uvicorn

ENV: str = os.getenv("ENV", "dev").lower()
if __name__ == "__main__":
    uvicorn.run(
        "server.backend:app",
        host=os.getenv("HOST", "0.0.0.0"),
        port=int(os.getenv("PORT", 8080)),
        workers=int(os.getenv("WORKERS", 4)),
        reload=ENV == "dev",
    )


Enter fullscreen mode Exit fullscreen mode

Now you can run you FastAPI project with just following commend

python run.py
Enter fullscreen mode Exit fullscreen mode

this is my github
https://github.com/MuhammadNizamani
this is my squad on daily.dev
https://dly.to/DDuCCix3b4p
check code example on this repo and please give a start to my repo
https://github.com/MuhammadNizamani/Fastapidevto

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (0)

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook