DEV Community

Josué Rodríguez (He/Him)
Josué Rodríguez (He/Him)

Posted on

2 2

Flask folder structure and __init__.py file

Hello everybody!

Last week I started studying about how to develop a REST API with Flask. I know very little about Python, basically just syntax and how to run a script, but I'm completely blank when it comes to folder structure and special files (such as the __init__.py file). I have strong knowledge of JavaScript and TypeScript and about backends with Node (Express and Nest).

My first question is about the folder structure, I would like to know what is the best practice for structuring my project. Right now, my project is looking like this (trying to replicate how I do it with Node):

my_project/
-src/
--__init__.py
--blueprints/
---books/
----__init__.py
-tests/
--__init__.py
--test_books.py
-run.py
Enter fullscreen mode Exit fullscreen mode

(Your answers don't necessarily need to be for a Flask project, if you tell how you structure your random Python projects that would help too!)

My second question is about the __init__.py file. I've read that by adding that file you are making the folder a package or module. I had it inside my blueprints folder, but I removed it just to see what would happen and my project was unaffected.

So, my questions would be:

  • When should I add this file to my folders and when should I not?
  • When should I leave that file blank and when should I write code to it?

Thanks in advance for your time and your answers ✨

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay