Nội dung
- Giới thiệu project blog bằng Django
- Ngày 1: Setup project Django
- Ngày 2: Xây dựng Model (Post, User)
- Ngày 3: Views & Template cơ bản
- Ngày 4: Thêm chức năng CRUD
- Ngày 5: Quản lý user & authentication
- Ngày 6: Trang trí với Template & Bootstrap
- Ngày 7: Deploy blog lên hosting miễn phí
- Ưu điểm khi học Django qua project blog
- FAQ
Giới thiệu project blog bằng Django
Khi bắt đầu học Django, cách nhanh nhất để nắm vững framework này là thực hành một dự án cụ thể. Blog là lựa chọn kinh điển: vừa đủ phức tạp để học các khái niệm quan trọng, vừa hữu ích để thêm vào portfolio Django project tutorial của bạn.
Trong hướng dẫn này, bạn sẽ học cách:
- Xây dựng Django blog project từ đầu.
- Hiểu rõ các thành phần: model, view, template.
- Thêm chức năng CRUD (Create – Read – Update – Delete).
- Quản lý user và authentication.
- Deploy ứng dụng blog lên hosting miễn phí (Heroku, PythonAnywhere).
👉 Nếu muốn đi sâu hơn, tham khảo khóa học Python Web Django tại CodeGym – nơi bạn được thực hành với 6 project thực tế từ cơ bản đến nâng cao.
Ngày 1: Setup project Django
- Cài đặt Django:
pip install django
django-admin startproject myblog
2. Chạy server:
python manage.py runserver
3. Tạo app “blog”:
python manage.py startapp blog
👉 Bây giờ bạn đã có cấu trúc Django cơ bản với một app blog riêng.
Ngày 2: Xây dựng Model (Post, User)
Trong blog/models.py:
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
- Post: lưu tiêu đề, nội dung, ngày tạo, tác giả.
- Kết nối với User để quản lý tác giả bài viết.
Chạy:
python manage.py makemigrations
python manage.py migrate
Ngày 3: Views & Template cơ bản
- Tạo view hiển thị danh sách bài viết trong blog/views.py:
from django.shortcuts import render
from .models import Post
def home(request):
posts = Post.objects.all()
return render(request, 'blog/home.html', {'posts': posts})
- Trong templates/blog/home.html:
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.content|truncatewords:30 }}</p>
{% endfor %}
👉 Bạn đã có trang chủ hiển thị tất cả bài viết.
Ngày 4: Thêm chức năng CRUD
- Create: form đăng bài.
- Read: xem chi tiết bài viết.
- Update: chỉnh sửa bài viết.
- Delete: xóa bài viết.
Dùng Django generic views để code nhanh gọn:
from django.views.generic import CreateView, UpdateView, DeleteView, DetailView, ListView
Kết hợp với URL routing trong blog/urls.py.
Ngày 5: Quản lý user & authentication
- Dùng Django built-in auth system: login, signup, logout.
- Cho phép user chỉ chỉnh sửa bài viết của chính họ.
Ví dụ middleware kiểm tra quyền sở hữu:
if request.user == post.author:
# cho phép edit
Ngày 6: Trang trí với Template & Bootstrap
- Sử dụng Django template inheritance để tạo layout chung (base.html).
- Tích hợp Bootstrap để làm giao diện đẹp, responsive.
👉 Kết quả: blog gọn gàng, có navbar, card bài viết, nút đăng nhập/đăng ký.
Ngày 7: Deploy blog lên hosting miễn phí
- PythonAnywhere: dễ dùng, dành cho người mới.
- Heroku: phổ biến, hỗ trợ Django tốt.
Ví dụ deploy Heroku:
pip install gunicorn whitenoise dj-database-url psycopg2-binary
heroku create
git push heroku main
👉 Chia sẻ link blog của bạn vào CV hoặc portfolio!
Ưu điểm khi học Django qua project blog
- Hiểu sâu: nắm chắc mô hình MVT của Django.
- Thực chiến: biết cách xây dựng web app hoàn chỉnh.
- CV-ready: có ngay project để show nhà tuyển dụng.
Đây là bước khởi đầu tuyệt vời nếu bạn muốn theo nghề Web Developer hoặc Backend Developer.
👉 Nhận hướng dẫn chi tiết hơn khi đăng ký khóa học Python Web Django tại CodeGym.
hoc-django-blog-project-7-ngay
👉 Xem thêm: 6 project thực hành với Django.
FAQ
- Học Django có cần giỏi Python trước không?
Chỉ cần nắm Python cơ bản (biến, vòng lặp, hàm) là bạn có thể bắt đầu học Django. - Django blog project mất bao lâu để hoàn thành?
Nếu theo hướng dẫn này, bạn có thể hoàn thành chỉ trong 7 ngày. - Django có tốt hơn Flask không?
Django phù hợp dự án lớn, nhiều tính năng. Flask phù hợp project nhỏ, API nhẹ. - Có cần biết HTML/CSS khi học Django?
Có. Django dùng template nên cần kiến thức HTML/CSS cơ bản để thiết kế giao diện.
0 Lời bình