This is a full-featured blog application built using Django, HTML, CSS, Bootstrap, and SQLite. It allows users to create and manage their own blog posts while providing a clean and user-friendly interface with authentication, profile management, and pagination.
- Register new users (Django Signals automatically create their profiles).
- Login & Logout functionality.
- Update user credentials & profile image.
- Profile images are resized if a large file is uploaded.
- Create, Update, and Delete posts (only by the post owner).
- Home page displays all posts by all users.
- Clicking on a post by another user shows the post detail view only.
- Clicking on your own post shows edit & delete options.
- Clicking on a username filters all posts by that user.
- Pagination: At most 5 posts per page.
- Bootstrap-based responsive design.
- Uses Class-Based Views (CBVs) & Function-Based Views (FBVs).
- Django Signals for profile creation.
- SQLite as the database.
- Clone the Repository
git clone https://github.com/your-username/django-blog.git cd django-blog
- Create a Virtual Environment & Activate it
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install Dependencies
pip install -r requirements.txt
- Apply Migrations
python manage.py migrate
- Create a Superuser (Optional, for Admin Panel Access)
python manage.py createsuperuser
- Run the Development Server
python manage.py runserver
- Open http://127.0.0.1:8000/ in your browser.
- Homepage (
screenshots/homepage.png
) - Post Detail (
screenshots/post_detail.png
) - User Profile (
screenshots/user_profile.png
) - Update Post (
screenshots/update_post.png
)
This project is licensed under the MIT License - see the LICENSE file for details.
For any queries, reach out at [email protected] or connect on LinkedIn.