This python script generates a pdf file based calendar with images and associated texts for each day. It's designed to read images and texts from specified directories and display them in a calendar format.
static/images | ||
templates | ||
texts | ||
app.py | ||
README.md |
Calendar Generator Flask App
This Flask application generates a web-based calendar view with images and associated texts for each day. It's designed to read images and texts from specified directories and display them in a calendar format. The web-based pages can be printed to a pdf-file. This is easy, because every browser application has the option to print a page to a pdf-file. Per DIN A4 page 4 days get displayed.
Setup
Prerequisites
- Python 3.x
- Flask
- Basic understanding of Python and Flask
Installation
-
Clone or Download the Repository
Clone this repository if you're familiar with Git, or simply download it as a ZIP file and extract it.
-
Install Required Packages
Flask is required and can be installed via pip:
pip install Flask
Folder Structure
Your project directory should be structured as follows:
project_folder/
│ app.py
│ README.md
│
├───static/
│ └───images/
│ │ 2024-01-15.jpg
│ │ 2024-01-16.png
│ ...
│
└───texts/
│ 2024-01-15.txt
│ 2024-01-16.txt
...
app.py
: Main Flask application file.static/images/
: Directory for storing calendar images. Images should be namedYYYY-MM-DD.extension
.texts/
: Directory for storing text files corresponding to each day, namedYYYY-MM-DD.txt
.
Running the Application
- Navigate to the project folder in your command line or terminal.
- Execute the Flask application:
python app.py
- Access the calendar in a web browser at
http://127.0.0.1:5000/
.
How It Works
- The application serves a web page displaying a calendar.
- Each day on the calendar can have an image and a text associated with it.
- Images are read from
static/images/
, and text files are fromtexts/
. - Files are matched based on their filenames, formatted as
YYYY-MM-DD
. - The calendar is dynamically generated based on available images and texts.
- If an image or text is not available for a specific day, it will be displayed without that content.
Notes
- Text for each day should be concise. Lengthy texts may be truncated in the display to maintain the layout of the calendar.
- You can customize the appearance and behavior of the calendar by modifying the HTML, CSS, and Flask application logic.
Copyright and license
This code is for my very good friend Felix W.. Code copyright 2024 Lorenz B.