This is a fully functional personal blog platform built with Django. It allows users to create, tag, view, and comment on blog posts, save posts to a "read later" list, and upload images as post thumbnails. This project demonstrates key Django features, including ORM for database management, session handling, slugs for clean URLs, and media file handling, providing a robust content management experience.
- Create, edit, update, and delete blog posts via the admin panel
- Tagging system to categorize posts by topic
- User commenting system for interacting with blog posts
- "Read Later" functionality allowing users to save posts for future reading
- Image upload for adding visuals to blog posts
- Slugs for clean URLs to improve SEO and user experience
- Session management to store and manage users' "Read Later" lists
- Django 4.2
- Python 3.11
- HTML5, CSS3
- SQLite (default Django database)
-
Clone the repository:
https://github.com/abdrrahim2002/Personal-Blog.git
-
Navigate into the project directory:
cd Personal-Blog
-
Create virtual environment:
virtualenv venv source venv/bin/activate
-
Install the dependencies:
cd my_site pip install -r requirements.txt
-
Run migrations:
python manage.py makemigrations python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
-
Access the site in your browser at:
http://127.0.0.1t:8000
-
For creating posts and manage them use the admin panel go to :
http://127.0.0.1:8000/admin/
This project was created by following a comprehensive tutorial from Maximilian Schwarzmüller, All credit for the structure and functionality of this project goes to the original author. I implemented the project to deepen my understanding of Django's core features, including ORM, sessions, slugs, and file handling.
Special Thanks
A special thanks to Tutorial Maximilian Schwarzmüller for creating such an informative and well-structured tutorial. Your guidance has been invaluable in helping me understand Django.
Thanks for taking the time to explore my project!