Cách sử dụng Python làm ngôn ngữ máy chủ từ phối cảnh PHP


11

Tôi chỉ biết lập trình phía máy chủ với PHP. Đối với tôi, tôi viết một cái gì đó vào index.phpvà gọi http://localhost/index.phpvà xem kết quả của tập lệnh PHP. Tôi đã và đang sử dụng CakePHP và hiểu rằng có một số thứ bạn có thể làm với việc viết lại URL, nhưng trong tâm trí của tôi, có mối quan hệ một đối một giữa các URL và tệp PHP trên máy chủ.

Bây giờ tôi làm rất nhiều với Python, nhưng chỉ sử dụng dòng lệnh. Tôi muốn sử dụng Python thay vì PHP cho dự án tiếp theo của tôi. Cho đến nay, tôi được cho biết mod_pythonrằng tôi phải sử dụng một khung như Pylons hoặc Twisted hoặc thậm chí Django để có được bất kỳ đầu ra nào cả. Những người khác đã nói rằng tôi chỉ cần print()một tiêu đề HTTP và sau đó tập lệnh sẽ xuất ra như tôi đang sử dụng với PHP.

Tôi muốn viết một cái gì đó về cơ bản chỉ lấy một danh sách thư mục và làm cho nó đẹp, để tôi có thể truy cập vào một loạt các tệp PDF từ trình duyệt di động. Tôi biết cách thực hiện điều này với PHP, tôi biết cách tạo tập lệnh Python sẽ tạo HTML. Tôi chỉ không biết làm thế nào để thực thi tập lệnh đó khi tôi mở http://localhost/pdfcentral/.

Làm thế nào tôi có thể cấu hình máy chủ của tôi? Nó chạy trên Ubuntu 10.04.


Có nhiều biến thể bạn có thể thực hiện nhưng cách đơn giản nhất là đặt tập lệnh Python vào cgi-binthư mục của bạn để máy chủ biết thực thi nó và tùy ý thực hiện chuyển hướng tệp PHP sang nó nếu bạn muốn sử dụng một đường dẫn khác. Về chính tập lệnh Python, bạn có thể làm theo quy trình này: forrestbao.blogspot.com/2009/08/ trên
ionFish

Câu trả lời:


9

mod_pythonkhông được tích cực phát triển nữa. Trong khi Apache nói rằng điều đó không có nghĩa là dự án đã chết -

Hiện tại mod_python chưa được phát triển. Điều này không có nghĩa là nó "chết" như một số người đã tuyên bố. Nó có nghĩa là mã và dự án đủ trưởng thành khi rất ít được yêu cầu để duy trì nó.

Nhưng, có ý kiến ​​cho rằng người ta nên sử dụng mod_wsgi thay thế. Đó là nếu bạn muốn xây dựng mọi thứ từ đầu. Mà tôi đề nghị, bạn không nên, trừ khi bạn đang sử dụng nó như một bài tập học tập.

Sẽ tốt hơn nếu sử dụng khung web để thực hiện công việc nặng nhọc - xử lý định tuyến, yêu cầu và lượt thích

Một danh sách toàn diện về các khung web Python có sẵn ở đây , nhưng đây là một số phổ biến -

  • Django - Nó được coi là tương đương Python của Ruby on Rails, và có nhiệm vụ khá nặng nề, vì vậy sẽ không phù hợp với những gì bạn cần.
  • Flask - Đây là một microframework. Đó là, nó nhỏ, không cản trở bạn và lý tưởng cho các dự án nhỏ hơn không cần nhiều pin đi kèm.
  • Kim tự tháp - Nó được xây dựng bởi cùng một nhóm người đã xây dựng Pylons, không còn tồn tại. Nó nằm ở đâu đó giữa Flask và Django - có thể được sử dụng thay thế cho một trong hai.
  • Chai - Đây là một microframework khác, và thậm chí còn tối thiểu hơn Flask. Chỉ là một tệp và không có phụ thuộc (nếu bạn sử dụng công cụ tạo khuôn mẫu được tích hợp sẵn) ngoài thư viện chuẩn, do đó sẽ phù hợp với những gì bạn muốn.
  • Web.py - Sau khi được hỗ trợ Reddit (được viết lại bằng các công cụ mới sau khi được mua).
  • webapp2 - Đây là khung tiêu chuẩn cho Google App Engine (mặc dù bạn có thể sử dụng các khung khác ở đó).

Trong số này, tôi muốn giới thiệu Flask, vì tôi đã sử dụng nó và không có khiếu nại. Nó cũng có rất nhiều tiện ích mở rộng sẽ giúp cuộc sống dễ dàng hơn rất nhiều nếu bạn muốn có nhiều tính năng hơn trong trang web của mình.

Ngoài ra, bạn sẽ cần một công cụ mẫu - để lắp ráp html của bạn. Jinja2 , được xây dựng bởi cùng những người tạo ra Flask, và được sử dụng khá rộng rãi. Nhưng đến từ phpphát triển web, bạn có thể thấy việc sử dụng Mako tự nhiên hơn, điều này cũng khá phổ biến.

Đây là một faq toàn diện hơn về phát triển Web Python - Câu hỏi thường gặp về Python: Webdev .


1
Tôi có một dự án Flask nhỏ hiện đang chạy với FastCGI và lighttpd trên máy thử nghiệm, nó cũng sẽ chạy trên máy chủ. Cảm ơn rât nhiều!
Martin Uting

1

Tôi thấy câu hỏi hơi khó hiểu và Nếu tôi đúng, tôi cho rằng mục tiêu chính của bạn là phục vụ các tệp cho điện thoại di động của bạn bằng cách sử dụng kiểu dáng đẹp?

Nếu đó là sự thật thì bạn không cần phải đi quá nhiều vòng để thiết lập một cái gì đó.

Apache2 cho phép bạn chỉnh sửa thư mục liệt kê tệp chính để bạn có thể định kiểu nó theo cách bạn muốn.

Ngoài ra còn có nhiều chủ đề chính sẵn sàng trực tuyến, chỉ cần tìm kiếm Google cho Chủ đề cho Danh sách thư mục Apache2, làm cho nó phản hồi cũng không khó.

Dưới đây là một số thông tin về cách thay đổi giao diện mặc định của Apache

Và đây là một số mẫu đã sẵn sàng để kiểm tra, còn nhiều nữa ....

Phong cách Repos

Đệ quy

Chỉ số


Điều này dường như để giải quyết vấn đề ban đầu khá tốt. Tôi nghĩ rằng tôi có thể sử dụng điều này như một dự án đầu tiên để chuyển từ PHP sang Python. Nếu dự án Python bị trì hoãn, tôi sẽ xem xét điều này. Cảm ơn!
Martin Uting

Chào mừng bạn;)
Simon Hayter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.