I’m learning to use Django, and I would like to build a website to view records in a database by date (like a calendar app) in an interactive UI, i.e. the user can click buttons to seamlessly move between specific dates and see records (meetings, events, etc.) corresponding to that date. The database is quite extensive as there are records corresponding to years of data.
Some possibilities I had in mind:
 One possibility would be to encode the dates to be viewed in the URL, so that the backend can serve the required portions of the database. However, this would harm the user experience since I would not be able to code a dynamic UI with JS/CSS that provides a smooth calendar experience with animations and without page navigation.
 Just create a Django REST API as the backend and completely code the frontend independent from Django that makes the appropriate API calls. But maybe this is an overkill, also I ideally don’t want to make an API available for other people to scrape the data from the website.
Are there better options or best practices that I might be missing? My use case feels somehow common, so I’m curious it would typically be solved.