DEV Community

loading...

Flask folder structure and __init__.py file

Josué Rodríguez (He/Him)
A Honduran systems engineer trying to improve himself everyday.
・1 min read

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 ✨

Discussion (0)