Overview | Intro | Anatomy | Play | Ideation | Sign-Up | Login | Profile | Style | Deploy | Scrum |
Flask File Structure
An overview of the file structure of flask
- Flask Project Structure: Explained
- main.py
- __init__.py
- /api folder
- /models folder
- /api/users.py
- /api/calendar.py
- /api/issues.py
- /models/user.py
- /models/event.py
- /models/issue.py
- scripts/db_init.py
- templates/dashboard.html
- static/styles.css
- requirements.txt
Flask Project Structure: Explained
main.py
Purpose: Entry point of your app. Runs the server using Flask.
from __init__ import create_app app = create_app() if __name__ == '__main__': app.run(debug=True)
__init__.py
Purpose: App configuration and Blueprint registration.
Sets up Flask and brings together all your routes.
from flask import Flask from api.users import user_api from api.calendar import calendar_api def create_app(): app = Flask(__name__) app.register_blueprint(user_api) app.register_blueprint(calendar_api) return app
/api folder
This folder contains the API route handler files such as users.py
, calendar.py
, and issues.py
.
/models folder
This folder contains database model files like user.py
, event.py
, and issue.py
.
/api/users.py
Handles user-related routes like /register
and /login
.
Defines HTTP endpoints and returns JSON responses for user actions.
/api/calendar.py
Handles calendar-related routes like /calendar/create
.
Defines HTTP endpoints and returns JSON responses for calendar events.
/api/issues.py
Handles issue reporting routes like /issues/report
.
Defines HTTP endpoints and returns JSON responses for issues.
/models/user.py
Defines the User database model using SQLAlchemy.
# models/user.py class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(50), unique=True)
/models/event.py
Defines the Event database model (example).
# models/event.py class Event(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) date = db.Column(db.DateTime)
/models/issue.py
Defines the Issue database model (example).
# models/issue.py class Issue(db.Model): id = db.Column(db.Integer, primary_key=True) description = db.Column(db.String(255))
scripts/db_init.py
Utility script to initialize the database.
# scripts/db_init.py from __init__ import create_app from models import db app = create_app() with app.app_context(): db.create_all()
templates/dashboard.html
HTML template using Jinja2 for backend UI or dashboard.
<h1>User Dashboard</h1> <ul> {% for user in users %} <li></li> {% endfor %} </ul>
static/styles.css
CSS file for styling frontend views served by Flask.
requirements.txt
Dependency file listing Python packages required for the app.
Install all dependencies with:
pip install -r requirements.txt