2009-05-21 44 views
17

Tôi đã làm một số công việc trong python, nhưng đó là tất cả cho các ứng dụng độc lập. Tôi tò mò muốn biết liệu bất kỳ offshoot của python hỗ trợ phát triển web?Sử dụng python để phát triển ứng dụng web

Một số người cũng đề xuất một hướng dẫn hay một trang web từ nơi tôi có thể chọn một số khái niệm cơ bản về phát triển web bằng python?

+3

Nếu tôi nghe những từ DJango hoặc TurboGears hoặc bất cứ điều gì nữa ... im gonna ... làm điều gì đó điên rồ? –

+5

@Aiden ... sau đó tôi khuyên bạn nên tránh xa hình thức bất kỳ cuộc thảo luận nào về ứng dụng web python, bởi vì * không * nói về các khung chính trong ngữ cảnh phát triển web là "điều gì đó điên rồ". –

+6

@Aaron, nhận xét hài hước. Tôi có một số phụ tùng nếu bạn muốn nó. –

Trả lời

21

Bây giờ mọi người đã nói Django, tôi có thể thêm hai xu của mình: Tôi cho rằng bạn có thể tìm hiểu thêm bằng cách xem các thành phần khác nhau trước khi sử dụng Django. Để phát triển web với Python, bạn thường muốn 3 thành phần:

  1. Cái gì mà mất quan tâm của các công cụ HTTP (ví dụ CherryPy)

  2. Một ngôn ngữ khuôn mẫu để tạo ra các trang web của bạn. Mako rất là nhiệt đới và works với Cherrpy.

  3. Nếu bạn lấy dữ liệu từ cơ sở dữ liệu , ORM sẽ hữu ích. SQLAlchemy sẽ là example.

Tất cả các liên kết ở trên đều có hướng dẫn tốt. Đối với nhiều trường hợp sử dụng trong thế giới thực, Django sẽ là một giải pháp tốt hơn so với chồng như vậy vì nó tích hợp liền mạch chức năng này (và nhiều hơn nữa). Và nếu bạn cần một CMS, Django là đặt cược tốt nhất của bạn ngắn của Zope. Tuy nhiên, để nắm bắt tốt những gì đang xảy ra, một chồng các chương trình kết hợp lỏng lẻo có thể tốt hơn. Django giấu rất nhiều chi tiết.

+1

+1 SQLAlchemy là rất mát mẻ (mặc dù, django + vv có lợi ích của đã chọn dispatcher, ORM, ngôn ngữ mẫu để bạn không phải). –

+0

@Aaron: hoàn toàn, đồng ý. Sửa đổi câu trả lời để làm cho lợi thế này của Django rõ ràng hơn – stephan

0

Tra cứu Django.

0

Python có thể được sử dụng để phát triển web, nhưng không có phần mở rộng ngôn ngữ đặc biệt hoặc bất kỳ ngôn ngữ nào sẽ xử lý tất cả các thế hệ HTML hoặc hoạt động như PHP.

Nó chạy khá nhiều thông qua một số loại thông dịch viên trên máy chủ web (CGI, mod_python, v.v.).

Tôi khuyên bạn nên xem xét Python Web Application Frameworks hoặc cách viết Python CGI scripts.

0

quite a few khung web cho python ra khỏi đó, nhưng chỉ có một tôi đã sử dụng là Django và tôi thực sự thích nó.

Nếu bạn đã có một vài tiếng đồng hồ, làm tutorial, tôi hứa với bạn, bạn sẽ thưởng thức nó :)

4

Sửa 3 năm sau: Không sử dụng mod_python, sử dụng mod_wsgi. Flask và Werkzeug là những khung tốt. Cần phải biết những gì đang xảy ra là hữu ích, nhưng nó không phải là một yêu cầu. Điều đó thật ngu ngốc.

Đừng tra cứu Django cho đến khi bạn nắm bắt tốt những gì Django đang làm thay cho bạn. cho bạn. Viết một số ứng dụng cơ bản bằng cách sử dụng mod_python và đối tượng yêu cầu của nó. Tôi chỉ mới bắt đầu học Python để phát triển web bằng cách sử dụng mod_python và nó đã được tuyệt vời.

mod_python cũng sử dụng bộ điều phối trong gói trang web/mod_python/publisher.py. Có một ganders thông qua này để xem làm thế nào yêu cầu có thể được xử lý một cách đơn giản-ish.

Bạn có thể cần phải thêm một chút cấu hình vào tệp cấu hình Apache của bạn để có được mod_python và chạy nhưng trang web mod_python giải thích rõ.

<Directory /path/to/python/files> 
    AddHandler mod_python .py 
    PythonHandler mod_python.publisher 
    PythonDebug On 
</Directory> 

Và bạn không còn nữa!

sử dụng (như là một ví dụ ngớ ngẩn cơ bản):

def foo(req): 
    req.write("Hello World") 

trong /path/to/python/files/bar.py giả /path/to là gốc trang web của bạn.

Và sau đó bạn có thể làm

http://www.mysite.com/python/files/bar/foo 

để xem "Hello World".Ngoài ra, cái gì mà vấp tôi lên là điều phối sử dụng một phương pháp què để làm việc ra các content-type, vì vậy để buộc sử dụng HTML:

req.content_type = 'text/html' 

Good Luck

Sau khi bạn có một tốt ý tưởng về cách Python tương tác với mod_python và Apache, sau đó sử dụng một khung làm tất cả các công cụ nhàm chán cho bạn. Tùy thuộc vào bạn, chỉ cần đề xuất của tôi là

+0

Nếu bạn khăng khăng gợi ý rằng mọi người tự mình cuộn, bạn nên ít nhất đề nghị rằng họ sử dụng WSGI chứ không phải mod_python. WSGI là tiêu chuẩn để viết các ứng dụng web python và không khóa bạn vào API của một máy chủ web cụ thể (thông thường như máy chủ web đó). Hơn nữa, khi bạn phát hiện ra một số nỗi đau của việc viết một ứng dụng web từ đầu WSGI rời khỏi cánh cửa mở để tái sử dụng các thành phần WSGI khác. –

+3

Do OP được sử dụng để phát triển độc lập bằng Python, và yêu cầu "cơ bản về phát triển web bằng python", đây dường như là nơi thích hợp để bắt đầu, bắt đầu theo cách này và tìm thấy nền tảng tuyệt vời để xây dựng. –

0

Như những người khác đã đề cập, một trong những "nhánh" nổi bật nhất mà bạn gọi là Django. Nó là một khung công tác khá mạnh mẽ cho phép bạn xây dựng các ứng dụng web một cách nhanh chóng và an toàn. Nơi đầu tiên để xem xét sẽ là their overview cung cấp cho một số cái nhìn sâu sắc như những gì Django làm như một khuôn khổ.

Đi qua their tutorial đã dạy tôi rất nhiều về mẫu thiết kế Model-View-Controler nổi bật và cách nó có thể được sử dụng trong ngữ cảnh phát triển web. Tôi tìm thấy nó một cách tuyệt vời để bắt đầu viết một ứng dụng làm việc và học hỏi bằng cách cải thiện nó.

3

Nếu bạn thực sự không muốn nghiên cứu các khuôn khổ - và bạn nên, tôi chân thành khuyên bạn nên Django hoặc giá treo tường - vẫn cần phải đi xuống con đường của CGI. Đây là một công nghệ hoàn toàn lạc hậu, chưa kể đến chậm và không hiệu quả.

một cách tiêu chuẩn để xây dựng ứng dụng web Python và được gọi là WSGI. Nếu bạn muốn cuộn ứng dụng web của riêng bạn từ đầu, điều này hoàn toàn là cách để đi.

Điều đó nói rằng, nếu bạn mới bắt đầu, thực sự bạn nên đi với một trong các khung công tác.

1

Có một số lựa chọn để phát triển web. Từ kinh nghiệm của tôi, sự lựa chọn của bạn một lần nữa sẽ phụ thuộc vào ứng dụng của bạn.Tôi đã sử dụng djangoweb.py trong sản xuất và tôi sắp triển khai một ứng dụng dựa trên pylons.

Django ẩn rất nhiều lựa chọn (đi kèm với ORM và khuôn mẫu của nó). Tài liệu được mở rộng và được viết tốt. Có rất nhiều ứng dụng tái sử dụng có sẵn cho django, nhưng bạn sẽ có khả năng đầu tư một chút thời gian trong việc tích hợp chúng liền mạch. Một điều mentioned on djangocon 08 là một thực tế, rằng có những thứ thú vị trong django, không thể dễ dàng truy cập trong các dự án không phải django.

web.py gây ấn tượng cho tôi bởi sự đơn giản thô sơ của nó. Trước khi tôi biết điều đó, tôi đã viết một ứng dụng nhỏ (78 lines quasi-wiki) trong đó.

pylons cảm thấy như đang ở giữa cả hai. Tôi có thể sử dụng sqlalchemyjinja, tất cả trong tất cả trải nghiệm thú vị để bắt đầu.

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