Django là gì? Tất cả những điều cần biết về framework này
Chưa kịp viết Django là gì thì độp ngay phát chị Google đã cho biết “Django: The web framework for perfectionists with deadlines”. Theo như cái tiêu đề giật tít hót hòn họt này thì Dỉ ản gô là web framework dành cho những người cầu toàn với deadlines.
À thế chưa gì là đã khoe, nhìn ngay ra cái ưu điểm đầu tiên của Django là development nhanh chóng, anh em nào chạy deadline sấp mặt có thể xem như một vị cứu tinh.
Rồi buồn cười cái nữa là search Django meme lại ra ông thần Leonardo DiCaprio vì có dính chút gì đó với tên ổng. Ôi cái framework này đích thị là thứ anh em mình cần tìm hiểu rồi.
Đùa tí cho vui để anh em có tinh thần khí thế tìm hiểu. Bắt đầu với Django ngay thôi nào!
1. Django là gì?
Luôn luôn là khái niệm, ngắn gọn mà súc tích. Cô đọng mà không cô đơn
Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.
Django là web framework base trên ngôn ngữ lập trình bậc cao Python, khuyến khích sự phát triển nhanh chóng, gọn gàng và thiết kế thực dụng. Được phát triển bởi những lập trình viên có kinh nghiệm, nó xử lý nhiều rắc rối trong quá trình phát triển web, vì vậy bạn có thể tập trung viết app của mình mà không cần tập trung vào phát triển bánh xe. Nó miễn phí và mã nguồn mở.
Rồi, có hai ý quan trọng, thứ nhất là Django là web framework và nó chú trọng vào việc phát triển nhanh web. Cái thứ hai là nó lo hết những thứ phụ trợ xung quanh, anh em chỉ cần tập trung vào viết code. Bánh xe hình tròn phát minh có từ hàng ngàn năm rồi, anh em không cần lo nghĩ nữa.
Má dùng từ đúng kiểu châm biếm. Nhưng thôi đang bận tìm hiểu bỏ qua, chứ gặp ông mà viết bài này chắc tẩn cho trận.
Rồi, đọc thôi là đã thấy nhanh rồi, nhưng cụ thể là nhanh như nào?
2. Django hoạt động như thế nào?
Anh em nếu đã có kinh nghiệm hoặc có chút ít tìm hiểu về web framework chắc sẽ có ít thông tin về MVC, MVM,… Với Django, web framework này triển khai dựa trên mô hình MVT design pattern.
Anh em nào nếu chưa biết về mô hình này có thể tham khảo ở đây nha.
Với mô hình này
- M được hiểu là Model, là dữ liệu bạn muốn trình bày, thường là dữ liệu từ hệ cơ sở dữ liệu.
- V ở đây được hiểu là View, là nơi xử lý các request và trả về các template kèm với nội dung (dựa trên yêu cầu của enduser).
- Cuối cùng là T, được hiểu là Template. Template là tập các file html chứa bố cục trang web ta muốn xây dựng. Không chỉ đơn thuần data, tất nhiên chưa cả logic về quy cách hiển thị dữ liệu.
Tham khảo việc làm Django hấp dẫn trên TopDev
3. Tại sao Django lại luôn tự hào là nhanh?
Cần phải nói lại để anh em clear là nhanh ở đây nhanh trong quá trình development web nha. Chứ không phải nhanh cái khác đâu ha.
Đầu tiên phải nói tới Django luôn tuân thủ 2 nguyên tắc DRY và KISS. Dành cho anh em nào chưa biết thì DRY là (Don’t repeat yourself, nghĩa là cái gì đã có đã làm rồi thì đừng cố gắng làm lại cho mất nhiều thời gian).
KISS thì không phải hôn mà là Keep it short and simple), giữ cho nó ngắn gọn và đơn giản. Càng ngắn gọn và đơn giản càng tốt.
Chính vì focus vào phát triển và dựng sẵn những thứ đã có. Bản thân Django đã hỗ trợ rất nhiều những thứ anh em cần làm trong quá trình phát triển web. Tất cả đã có, chỉ cần sử dụng.
Ngoài ra nếu những thứ này chưa có thì anh em có thể tìm kiếm hơn 4000 packages khác đã có, tuỳ cơ sử dụng. Từ testing, debugging tới profilling.
Ngoài ra nếu muốn deploy hoặc tích hợp deploy ở đâu đó, Django cũng sẽ hỗ trợ anh em hết sức nhiệt tình. Kiểu một nút lên là lên.
4. Django có an toàn và bảo mật không?
Hỏi này là hợp lý. Cái gì nhanh cũng sợ là ẩu, đi nhanh còn sợ ẩu nữa huống hồ là Django.
Bản thân Django đã hỗ trợ phòng tránh các lỗ hổng bảo mật thường gặp trong quá trình phát triển web. Một số anh em có thể kể tới như sau:
- Cross site scripting (XSS) protection (Tấn công này cho phép đem các file từ phía client vào thực thi trên browser của người khác)
- Cross site request forgery (CSRF) protection (lấy thông tin hoặc chứng chỉ xác thực từ người khác mà người đó không biết hoặc không đồng ý)
- SQL injection protection (cái này quá phổ biến ha, anh em có thể tìm hiểu qua tại đây)
- Clickjacking protection
- SSL/HTTPS
- Host header validation
- Referrer policy
Còn nhiều nhiều nhiều thứ khác nữa anh em có thể ghé trang chủ để biết Django đã hỗ trợ và liên tục cập nhật để tránh các lỗ hổng trên web như thế nào nha.
À bản thân Django cũng có những bản LTS (Long-term support), các bản này support người dùng dài dài. Tăng uy tín liền.
5. Django có khả năng mở rộng không?
Đúng thiệt lắm chuyện. Vừa nhanh, vừa an toàn vừa bảo mật mà còn đòi hỏi phải có khả năng mở rộng tốt. Thiệt là đòi hỏi hết sức.
Tuy nhiên Django lại chiều anh em được vụ Scale này. Do phát triển web, biết đâu chừng business của anh em vụt lên trông thấy. Chính lúc đó ta cần khả năng scale nhanh chóng
Django hiện tại hỗ trợ cả Horizontal Scaling và Vertical Scaling (scaling cả theo chiều ngang là chiều dọc). Cũng hỗ trợ cả database pooling trong trường hợp có nhiều kết nối tới hệ cơ sở dữ liệu.
Về scale thì nếu theo nhiều ngang (Horizontal), Django hỗ trợ Cache Backends (Memcache or Redis). Lưu dữ liệu ở các máy chủ khác nhau. Anh em cứ yên tâm khi lựa chọn Django để phát triển web mà yêu cầu scale nha.
Theo như thông tin từ bài viết này thì Django còn có thể giải quyết tới 45 nghìn request trong mỗi giây.
6. Tham khảo thêm về Django
- Scaling Django for millions of users
- Tuple trong lập trình Python. Những điều cần biết
- WHAT IS DJANGO MVT ARCHITECTURE? WHAT DIFFERS MVT FROM MVC ARCHITECTURE?
Cảm ơn anh em đã đọc bài – Thank you for your time – Happy coding!
Tác giả: Kiên Nguyễn
Xem thêm:
- 9 project nhỏ mà bạn có thể code để luyện tập kỹ năng lập trình
- 10 Java Web Framework tốt nhất
- Kết nối ứng dụng Spring Framework với Cơ sở dữ liệu SQL
Xem thêm Việc làm Developer hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS