2012-04-02 26 views
7

Tôi muốn biết nếu có một cách để tạo các trang web mà không có một khuôn khổ lớn trong python.Python: Làm cách nào để tạo các trang web đơn giản mà không có một khung công tác lớn?

Tôi nghĩ về một cái gì đó giống như PHP/Apache, mà đến như là một ngôn ngữ và không phải với nhiều chi phí (nhưng tôi không thích PHP ...). Trong PHP không có ORM, không có công cụ mẫu, v.v. Nhưng rất dễ dàng chỉ cần in một Hello World vào trình duyệt.

Tôi biết về Django và thực sự thích nó, nhưng nó hơi quá lớn đối với các cổng web đơn giản (5-10 trang).

Tôi thực sự thích thứ gì đó đơn giản, không cài đặt quá nhiều.

+3

Bạn mong đợi khung làm việc như thế nào? Bạn chỉ nói những gì nó được cho là * không * để làm. Nếu nó không nên làm bất cứ điều gì cả, làm thế nào về việc chỉ viết các trang HTML với một trình soạn thảo tốt? –

+0

Tương tự như PHP, nhận các giá trị POST/GET, xử lý, echo'ing. –

+1

Vui lòng cập nhật câu hỏi của bạn và cố gắng càng cụ thể càng tốt. Nếu không, câu hỏi này là "đăng khung khuôn khổ web Python nhẹ yêu thích của bạn", điều này không phù hợp với SO. –

Trả lời

3

Bạn đã tra cứu Flask chưa?

Đó là khuôn khổ tối giản hơn nhiều và rất dễ thiết lập và bắt đầu.

+0

Chai là một khuôn khổ tối giản tương tự mà tôi thích sử dụng: http://bottlepy.org/docs/dev/ –

+0

Vâng, tôi biết chai, tôi tin rằng bình thậm chí có nguồn gốc từ nó. – pcalcao

+0

vâng! Đó là nó! Cảm ơn bạn. Đó chính xác là những gì tôi đã tìm kiếm. Đơn giản. –

0

mod_python có lẽ?

+0

Mod_python cho phép bạn làm điều đó như thế nào? Vui lòng giải thích đó là gì và cung cấp một ví dụ nếu có thể, để mọi người không phải nhấp qua. – agf

+0

bất cứ ai biết về Apache sẽ hiểu ít nhất khoảng từ cái tên mod_python nào. –

1

Tôi không chắc chắn những gì sai với các trang phẳng django cho mục đích của bạn.

Một giải pháp thay thế khác là thay thế hệ thống mẫu django bằng thứ gì đó mạnh mẽ hơn, như jinja, vì vậy bạn có thể viết súp thẻ và xử lý ở đó, với logic tối thiểu trong chế độ xem.

Trong thực tế (có nghĩa là bạn đã biết django), điều đó có thể dễ dàng hơn việc sử dụng microframework (đòi hỏi nhiều lập trình viên hơn, để đổi lấy hoàn toàn không được quan tâm về bất kỳ điều gì).

0

Tôi muốn giới thiệu CherryPy

import cherrypy 
class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.quickstart(HelloWorld()) 
2

Tốt CGI cũ là cách nhanh nhất để giúp bạn bắt đầu. Trên hầu hết các cấu hình, bạn chỉ cần thả một tập lệnh python vào 'cgi-bin' và làm cho nó thực thi được, không cần cài đặt bất cứ thứ gì. Google cho "cgi python", có rất nhiều hướng dẫn, ví dụ: this one trông khá phong nha.

0

Chắc chắn, bạn có thể thực sự nạc với tuyến đường CGI hoặc wsgiref. Tuy nhiên, bạn nhận được những gì bạn trả tiền cho, và tôi thích Flask hoặc WerkZeug cho tất cả những nỗi đau mà họ ngăn chặn.

Từ wsgiref python docs:

from wsgiref.simple_server import make_server 

def hello_world_app(environ, start_response): 
    status = '200 OK' # HTTP Status 
    headers = [('Content-type', 'text/plain')] # HTTP Headers 
    start_response(status, headers) 
    return ["Hello World"] 

httpd = make_server('', 8000, hello_world_app) 
print "Serving on port 8000..." 

# Serve until process is killed 
httpd.serve_forever() 
4

Tôi đã sử dụng Flask (và bottle.py) trong quá khứ, nhưng những ngày này tôi thực sự thích Pyramid, from the Pylons folks. Hình minh hoạ

Kim tự tháp có khả năng là một khuôn khổ lớn, chính thức, được thiết kế linh hoạt và không thiếu các plugin và tiện ích mở rộng có sẵn bổ sung chức năng bổ sung - nhưng nó cũng có khả năng các dự án tệp đơn lẻ; xem this tutorial for an example.

Đi với Kim tự tháp sẽ cung cấp cho bạn chỗ để phát triển nếu nhu cầu của bạn mở rộng theo thời gian, trong khi vẫn giữ lại khả năng bắt đầu nhỏ.

+0

vâng, kim tự tháp có vẻ mát mẻ, nhưng bình thực sự là giải pháp tốt hơn cho 'vấn đề' của tôi, bởi vì tôi sẽ chuyển sang Django cho những thứ lớn hơn. –

+0

@DavidHalter Điều đó chỉ hoạt động nếu bạn biết trước nếu dự án của bạn sẽ trở thành "điều lớn hơn". Nếu nó bắt đầu nhỏ và sau đó phát triển hữu cơ, có con đường duy nhất là một hoàn toàn viết lại kinda 'sucks. (Ngoài ra, với tư cách là một nhà phát triển Django trước đây, tôi không hiểu rõ lý do tại sao bạn muốn _want_ chuyển sang một cái gì đó với một ORM đáng kinh ngạc [ít nhất là so với SQLAlchemy, tiêu chuẩn mà tất cả những người khác cần được đo], công cụ tạo khuôn mẫu chậm chạp, cơ chế định tuyến URL ít có thể cắm được, v.v ... nhưng đó là một cuộc trò chuyện hoàn toàn riêng biệt). –

+0

Ồ, có vẻ như tôi cũng phải kiểm tra Kim tự tháp. Tôi ghét ORM Django vì tính không khoan nhượng của nó để xử lý các phím tổng hợp. Và công cụ tạo mẫu thực sự rất chậm, bạn nói đúng (nó tốt hơn nhiều với PyPy). Kim tự tháp âm thanh thực sự tốt. Tôi phải thử. –

0

Python hoạt động tốt bằng CGI.

đó là điều đơn giản nhất bạn có thể làm: nó chỉ cần apache và môi trường python đang hoạt động và gần nhất với thiết lập chuẩn php.

hãy nhớ rằng, khi sử dụng CGI, tập lệnh python của bạn chịu trách nhiệm xuất các tiêu đề HTTP cần thiết (sys.stdout.write('Content-Type: text/html\n\n')), nhưng có một mô-đun CGI là một phần của thư viện chuẩn python./lấy đối số phân tích cú pháp, truy xuất tiêu đề, tạo tiêu đề).

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