2010-04-21 18 views
20

Làm thế nào để tạo trang web đơn giản với python?Làm thế nào để tạo trang web đơn giản với python?

Tôi có nghĩa là thực sự đơn giản, f.ex, bạn thấy văn bản "Hello World", và có nút "gửi", trong đó (onClick) sẽ hiển thị hộp ajax "gửi thành công".

Tôi muốn bắt đầu phát triển một số nội dung bằng Python và tôi không biết bắt đầu từ đâu.

+0

AJAX không phải là (chỉ) python, nó cũng là JavaScript ở phía trình duyệt. – extraneon

Trả lời

1

Tại sao bạn không thử công cụ Google AppEngine? Chúng cung cấp cho bạn một môi trường cục bộ (chạy trên hệ thống cục bộ của bạn) để phát triển ứng dụng. Họ có tài liệu giới thiệu dễ dàng, tốt đẹp để đưa trang web lên và chạy - ví dụ "hello, world" của bạn sẽ không đáng kể để triển khai. Từ đó, bạn có thể đi với một số khung công tác khác (sử dụng những gì bạn đã học được, vì công cụ vanilla AppEngine khá chuẩn cho khung công tác web python đơn giản) hoặc mang theo những thứ khác mà Google cung cấp (như lưu trữ của bạn) ứng dụng dành cho bạn ...)

+10

-1: gửi người mới bắt đầu bằng Python đến GAE giống như việc gửi một sinh viên người nước ngoài người mới bắt đầu đến một hội nghị về cách tiếng lóng phát triển trong thế kỷ này: rất thú vị, nhưng không phải cho anh ta. Có hàng ngàn cách dễ dàng để thiết lập các giải pháp ngoài việc không yêu cầu phải được khóa trong một hệ thống độc quyền với các công cụ không chuẩn. –

+1

e-satis :) không, GAE hoàn hảo –

2

Tôi nghĩ bạn nên bắt đầu với một số loại khung web Python. Đối với tôi Web2Py vừa dễ dàng vừa mạnh mẽ. Tất nhiên bạn có thể tạo các trang của bạn bằng cách sử dụng CGI: không có khung yêu cầu, nhưng đối với các trang web phức tạp hơn nó không phải là thực tế.

11

Tôi đã hy vọng các câu trả lời phức tạp hơn sẽ được trao cho câu hỏi này, vì đây là một chủ đề nhạy cảm. Việc phát triển web Python được phân chia trên nhiều khung công tác, mỗi khung có các thăng trầm và mọi nhà phát triển sử dụng một trình duyệt khác. Điều này khá là không may. Những điều bạn nên biết:

  • Sử dụng WSGI. Không sử dụng bất cứ thứ gì khác, WSGI là tiêu chuẩn mới nhất trong phát triển web Python;
  • Không phát triển trực tiếp trên đầu trang của WSGI, trừ khi bạn thực sự phải (ngay cả đối với ứng dụng hello world);
  • Sử dụng một khuôn khổ phù hợp nhất với nhu cầu của bạn:
    • tôi chơi với Werkzeug (mà không phải là thực sự là một nền tảng, họ gọi nó là một bộ công cụ ) bởi vì nó thực sự đơn giản nhưng mạnh mẽ. Nó cho phép bạn làm việc trên cấp độ WSGI (cũng giúp bạn hiểu cách WSGI hoạt động) trong khi cung cấp các tính năng và trợ giúp thực sự hữu ích. Trên trang web Werkzeug, bạn cũng sẽ tìm thấy các hướng dẫn hữu ích và những thứ tương tự.
    • Có lẽ khung phổ biến nhất là Django. Không bao giờ sử dụng nó, nhưng có thể có một lý do tại sao nó rất phổ biến.

Tóm lại, hãy sử dụng bất kỳ điều gì gần gũi nhất với trái tim của bạn.

+0

Tại sao bạn nói "Không sử dụng bất cứ điều gì khác ngoài WSGI?" nếu anh ta hỏi câu hỏi này, rất có thể anh ta sẽ sử dụng máy chủ thử nghiệm một lúc trước khi anh ta thực sự triển khai bất kỳ thứ gì, điều đó có nghĩa là anh ta không cần phải lo lắng về những thứ như vậy (ít nhất là chưa). –

+0

@ Vâng, đúng vậy. WSGI định nghĩa cách ứng dụng của bạn xử lý các yêu cầu, vì vậy bạn phải xem xét nó từ dòng mã đầu tiên. Và "máy chủ thử nghiệm" đó phải hỗ trợ wsgi theo cách nào đó (ví dụ, đối với apache, có mod_wsgi). Ngoài ra, Werkzeug (và tôi nghĩ chính Python cũng vậy) đi kèm với một máy chủ web dựa trên WSGI có sẵn, vì vậy bạn có thể sử dụng 'run_wsgi (my_app)' ví dụ như một máy chủ thử nghiệm. – Felix

3

Felix được đề xuất, hãy sử dụng WSGI (mod_wsgi) làm giao diện cổng của bạn. Đó là cách thức kinh doanh hiện đại và người đấu giá lớn khác, mod_python, không còn được duy trì nữa.

Django là một lựa chọn tuyệt vời nếu bạn muốn có một khuôn khổ chất lượng sản xuất chính thức nhưng nó cũng đi kèm với chi phí có rất nhiều chi phí và đường cong học tập khá dốc.

Đề xuất của tôi là: Tornado!

Tôi thấy rằng Tornado giúp bạn dễ dàng thức dậy và chạy nhanh. Để minh họa ở đây là "Xin chào, Thế giới" từ tài liệu Tornado:

import tornado.httpserver 
import tornado.ioloop 
import tornado.web 

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.write("Hello, world") 

application = tornado.web.Application([ 
    (r"/", MainHandler), 
]) 

if __name__ == "__main__": 
    http_server = tornado.httpserver.HTTPServer(application) 
    http_server.listen(8888) 
    tornado.ioloop.IOLoop.instance().start() 

Theo ý kiến ​​của tôi, hãy tự nói.

Chỉnh sửa: Điều quan trọng cần lưu ý là bạn không để sử dụng máy chủ web đi kèm với Tornado. Nó plugs very easily into WSGI để chạy với bất kỳ máy chủ bạn đã có.

Chúc bạn may mắn tìm kiếm!

+0

Nhưng Django đi kèm với một cuốn sách trực tuyến tại http://www.djangobook.com/en/2.0/ :) – extraneon

+0

Có, nó có. Nhưng bạn phải đọc cuốn sách để có được hiệu quả đầy đủ. Tôi yêu Django và tôi sử dụng nó rất nhiều, nhưng tôi nghĩ rằng nó quá mức cần thiết cho rất nhiều thứ. – jathanism

4

Bạn có thể viết một trang web bằng Python trong đó máy chủ web được triển khai bằng Python hoặc trong Python được gọi từ một số máy chủ web khác. Nếu bạn chưa thiết lập máy chủ web, tùy chọn đầu tiên sẽ dễ dàng hơn. Thư viện Python bao gồm một máy chủ web đầy đủ chức năng, tất cả những gì bạn phải làm là thêm một vài phương thức để trả lời các yêu cầu.

Đối với một ví dụ hoàn chỉnh của một trang web sử dụng kỹ thuật đơn giản này, xem Making a simple web server in Python

Kỹ thuật này có thể hoặc không thể phục vụ bạn tốt cho việc phát triển thương mại, các trang web sản xuất, nhưng đó là cách đơn giản nhất từ ​​P (ython) đến W (ebsite).

+0

Đó là rất nhiều công việc hơn anh chàng này muốn làm tôi đặt cược. Anh ấy muốn một trang web, không phải máy chủ web. – bradlis7

+0

@ bradlis7: Xem liên kết. Nó ít công việc thực hiện một trang web theo cách này hơn là cố gắng để cài đặt và cấu hình Apache, hoặc bất cứ điều gì khác, để truy cập Python. Đây là cách nhanh nhất để một trang web với Python. –

+0

Tôi nghĩ rằng việc tạo ra một CGI cũng là tốt. – bradlis7

2

Bạn có thể tham gia khóa học này miễn phí trên udacity Web Development using Python. Đây là khóa học tuyệt vời và dạy từ đầu bằng GAE. Vào cuối khóa học, bạn sẽ có một blog chính thức của bạn trên web được phát triển bởi bạn trong python.

P.S một trong những người hướng dẫn là người sáng lập Steve Huffman của Reddit.

Các vấn đề liên quan