Đăng ký SPRINGMEBLOG để tiếp thu kiến thức hiệu quả hơn!

Forgot Password

Đăng ký SPRINGMEBLOG để tiếp thu kiến thức hiệu quả hơn!

Cảm ơn bạn đã đăng ký tài khoản Springmeweb!

Vui lòng kiểm tra Email, click vào Link để kích hoạt tài khoản.

Python cho Web: Lý do nên dùng Django

BY: Nguyen-Ngoan  |   April 8, 2018  |  
Python
  • 0

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 môi trường web và không có dủ 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?

Python cho người mới

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:

Lập trình để đảo số trong Java (trái) và Python 2.7.x (phải)

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.

Đ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.

Techtalk via Sitepoint

Please Share This With

ĐĂNG KÝ ĐỂ TIẾP THU KIẾN THỨC HIỆU QUẢ HƠN

ABOUT SPRINGMEBLOG

Springmeblog.com giới thiệu các bài viết về chủ đề KINH DOANH, PHÁT TRIỂN SỰ NGHIỆP, QUẢN LÝ CON TRẺ.

Các bài viết của Springmeblog được chọn lọc kỹ từ các bài viết English của các chuyên gia giỏi trên thế giới để mang lại nguồn kiến thức HỮU ÍCH nhất và THIẾT THỰC nhất có thể áp dụng ngay vào công việc và cuộc sống.

Springmeblog.com được thiết kế nhằm mang đến sự tiếp thu kiến thức một cách HIỆU QUẢ nhất. Mỗi bài viết English được giới thiệu có công cụ TỪ ĐIỂN TÍCH HỢP hỗ trợ đọc hiểu. Cùng với các công cụ LƯU BÀI VIẾT, TẠO GHI CHÚ cho mỗi bài viết, springmeblog hỗ trợ cho việc HỌC TẬP SUỐT ĐỜI qua tiêu chí ĐỌC ĐỂ LÀM và HỌC ĐỂ LÀM ĐƯỢC.

© 2018 SPRINGMEWEB. DESIGIN BY SPRINGMEWEB