Python cho lập trình web, lý do nên dùng Django

Hãy cùng tìm hiểu về lập trình web sử dụng ngôn ngữ Python và framework Django qua bài viết này nhé

Từ khi được Guido van Rossum ra mắt từ đầu những năm 1990, sau nhiều năm không ngừng hoàn thiện, Python đang phát triển mạnh mẽ và ngày càng trở nên phổ biến. Đến năm 2016, Python là ngôn ngữ phổ biến thứ 4 thế giới sau Java, C và C++. Python là ngôn ngữ lập trình đa chức năng có thể ứng dụng ở nhiều lĩnh vực khác nhau.

Python là lựa chọn phổ biến khi ta cần viết scripts cho mục đích test và monitor. Python cũng đã từng được dùng nhiều trong lập trình game, khả năng kết hợp với các ngôn ngữ khác của Python là điểm sáng giá “ăn tiền”. Python nổi tiếng đến mức nó từng được Industrial Light and Magic của George Lucas sử dụng (đảm nhiện hiệu ứng đặc biệt trong Star Wars trilogy đầu tiên) để quản lý quá trình sản xuất phức tạp của bộ phim.

Không như PHP, Python không được xây dựng chuyên cho lập trình web và không có đủ tính năng web cốt lõi cần có. Bởi vậy, chúng ta phải sử dụng web framework để phát triển ứng dụng web trên Python. Kể từ sự xuất hiện của các framework tuyệt vời như Django, lập trình viên web đã bắt đầu sử dụng Python nhiều hơn.

Điều gì đã khiến Python trở thành ngôn ngữ càng được nhiều lập trình viên lựa chọn khi xây dựng web?

Tại sao lại dùng Python?

Yếu tố làm nên sự phổ biến của Python nằm ở chỗ tinh tế của code – cụ thế là sự ngắn gọn và dễ đọc. Cụ thể hơn, hãy so sánh cách reserse number (đảo số) của Python và Java:


Learning curve (đường cong học tập) trong Python ngắn hơn, nên sẽ là ngôn ngữ lý tưởng cho người mới học. Bên cạnh đó, nếu project của bạn xây dựng trên nền Python và các lập trình viên mới không quen thuộc với project, quá trình chuyển đổi sẽ trở nên dễ dàng hơn.

Adam D’Angelo, đồng sáng lập Quora-co chi sẻ về lựa chọn sử dụng Python cho các hoạt động của Quora:

Đến nay, chúng tôi khá hài lòng với lựa chọn này… tất cả nhân viên từng làm việc với các ngôn ngữ khác đều càm thấy rất hài lòng khi chuyển sang Python, đặc biệt là những ai từng làm với PHP.

Hơn nữa, Python có nhiều công cụ debug dễ sự dụng. Mặc dù vẫn có một vài công cụ debugger và IDE, công cụ mặc định vẫn là pdb, công cụ debug tương tác, cho phép lập trình viên ngừng thực thi chương trình giữa chừng, và đánh giá môi trường để hiểu thêm về run time errors.

Python trên remote server

Công việc quản lý package (hay module) trong Python cũng vô cùng dễ dàng. Chỉ với một package installer như pip hay easy_install, bạn đã có thể cài đặt và gỡ bỏ package thật đơn giản.

Python cũng rất cơ động. Khả năng chuyển đổi môi trường lập trình dễ dàng sang remote machine là điểm cộng sáng giá của Python. Chỉ với hai dòng lệnh, bạn đã có thể export package, và cài vào virtual environment trên remote machine cùng một lúc.

Một lý do nữa khiến nhiều lập trình viên chọn Python, là khả năng chạy script chưa được embed vào web server (không như PHP script). Python chạy scripts trên nhiều process riêng biệt.

Lập trình Web bằng Python Web Frameworks

Python không có sẵn khả năng làm web, chính vì thế, chúng ta cần phải có một số module nhật định để đưa Python lên web. Nếu bạn muốn phát triển những ứng dụng cực kỳ đơn giản – nhưng một page check thử server chó chạy hay không – bạn có thể dùng the cgi module.

Với nhu cầu ngày càng đa dạng, lập trình viên nên chuyển sang một số framework Python như Django hay Flask để có thê cho ra các ứng dụng web phức tạp.

Lập trình web

Đa phần những framework này cần phải đi kèm với dịch vụ web như Apache khi tiến đến production, và đây cũng là lúc khuyết điểm xuất hiện. So với PHP, quá trình deploy của Python trên remote server sẽ khá khó khăn nệu bạn thực hiện lần đầu trong đời. Tuy nhiên, thời gian bạn đầu tư vào đấy chắn chắn sẽ nảy sinh kết quả về sau.

Các dịch vụ nổi tiếng như Instagram, Reddit, Quora và Disqus đều được phát triển trên nền Python.

Django — Python Web Framework phổ biến nhất hiện nay

Một câu hỏi tự xuất hiện trong đầu mỗi người: Tại sao ta phải dùng Python để lập trình web? Đầu tiên, đừng nghĩ là ta “chỉ dùng Python”. Còn rất nhiều framework khác như Django hay Flask tham gia vào quá trình này, khiến quá trình làm web thêm đa dạng và mạnh mẽ. Dưới đây là một số thế mạnh của Django so với các framework khác:

  • Học tập nhanh. Tương tự Python, Django cũng rất dễ học, không như Ruby hay Rails.
  • Tự động tạo SQL tables. Django sẽ thay bạn làm công việc này khi bạn đã xác định được cấu trúc.
  • Tạo forms. Khi bạn đã tạo được Form class trong Django và linked đến model, form generator trong Django sẽ đảm nhận render form, xác minh và lưu trưc data.
  • Admin Interface. Tương tự SQL table, khi bạn đã xác định được cấu trúc, Django sẽ tạo một admin interface cho phép bạn quản lý database (không khác gì PhpMyAdmin được build-in trong Django cả.)
  • Django Shell. Python shell, ngay trong môi trường của Django project, chính là lợi thế mà Django shell mang lại. Tính năng này rất hữu hiệu khi debug (thường khó thực hiện trên PHP hơn).

Django Web Hosting

Khả năng Web host là chường ngại lớn nhất khiến nhiều người e ngại chuyển sang dùng Django. Hiển nhiên, do sự nổi tiếng của PHP, số lượng hosts rất cao và host khá rẻ (và host rẻ thường phải shared). Tuy nhiên, còn có một số host như AWS và Heroku cho phép bạn host ứng dụng Django miễn phí (với giới hạn nhất định). Với các shared host có giá tiền “mềm” hơn một chút, bạn có thể tìm đến WebFaction.

Những dịch vụ cloud hosting phổ biến nhất hiện nay như AWS, Digital Ocean và Microsoft Azurecó cung cấp root access đến server, cho phép bạn tự set up thủ công môi trường. Digital Ocean trong thực tế còn có thêm one-click Django deployment. Tuy Django không nổi tiếng như các framework bên PHP, nhưng lại có nhiều tùy chọn khác nhau với những mức giá khác nhau.

Lời kết

Mục đích của bài viết không phải là để thuyết phục các bạn rằng Python là lời giải cho mọi vấn đề, mà là để chia sẻ thêm những lợi ích của Python cùng với web framework, giúp công việc của web developer càng trở nên dễ dàng hơn nữa.

--------------------
STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963.723.236 – 024.6275.2212
Website: https://stanford.com.vn


Tags: lập trình web, học lập trình