2009-10-20 24 views
5

Có khung công tác 'wrapper' đơn giản cho appengine không? Một cái gì đó như Sinatra hoặc Juno? Vì vậy mà người ta có thể viết mã như sau:Một khung công tác đơn giản cho Google App Engine (như Sinatra)?

from juno import * 

@route('/') 
def index(web): 
    return 'Juno says hi' 

run() 

CẬP NHẬT: Tôi muốn sử dụng API Python (không Java) trong game.

+1

Vui nhộn. Tôi đã nghĩ rằng tôi muốn một cái gì đó như thế, chỉ ngày hôm qua. Bị bệnh khi chạy ngược lại và tiến lên giữa urls.py (trong django) hoặc tệp yaml trong GAE. – interstar

Trả lời

7

Có một số khung hoặc đặc biệt cho App Engine, hoặc rất thích hợp với nó:

+0

Cảm ơn. Một cái nhìn nhanh chóng về các khuôn khổ đã đề cập cho thấy rằng 'kay' là thứ tôi muốn tốt hơn những người khác. Tôi sẽ dành một chút thời gian với 'kay' và báo cáo suy nghĩ của tôi về nó sau này. –

0

Bạn nên xem gaelyk. Đó là một khung công tác nhẹ trên đầu appengine sử dụng groovy.

+0

Nhưng đó là dành cho API Java; Tôi cần một cho Python API. –

2

Không có khung như vậy đã được phát hành tại thời điểm này, theo sự hiểu biết tốt nhất của tôi (hầu hết mọi người dường như khá hài lòng với Django tôi đoán ;-). Bạn có thể thử sử dụng Juno với this patch - nó dường như không sẵn sàng cho thời gian chính, nhưng sau đó một lần nữa, nó là một bản vá khá nhỏ, có thể cần nhiều hơn nữa để cho phép Juno làm việc hoàn toàn trên GAE!

+0

Vâng, tôi đã xem bản vá này trước đây .. nó vô hiệu hóa các mẫu/ORM dẫn đến một khung công tác khá vô dụng. –

+0

@Sridhar, rõ ràng bạn không thể có ORM trong GAE vì không có R (lưu trữ GAE không quan hệ) và các mẫu có sẵn chỉ là những thứ bạn có thể làm trong Python thuần khiết (django là phổ biến nhất, mặc dù tôi vẫn thích YAPTU ;-) cổ đại, không phải jinja hoặc những người khác cần phần mở rộng mã hóa C. Để sử dụng App Engine một cách hiệu quả, bạn phải chấp nhận các giới hạn của nó - bộ nhớ không quan hệ và các phần mở rộng chỉ thuần túy-Python. –

+0

Đúng, nhưng ít nhất API "Person = model ('Person', ...) của Juno có thể được dịch sang các mô hình appengine cơ bản. Miếng dán đó không che đậy điều đó. –

1

Một khung công tác khác mà tôi muốn thử là Bloog. Nó thực sự là một công cụ blog cho GAE nhưng cũng cung cấp một khuôn khổ để phát triển các ứng dụng GAE khác.

2

Tôi sử dụng web.py. Nó thực sự đơn giản và không cản trở bạn.

Đây là cách nó trông:

import web 

urls = (
    '/(.*)', 'hello' 
) 
app = web.application(urls, globals()) 

class hello:   
    def GET(self, name): 
     if not name: 
      name = 'world' 
     return 'Hello, ' + name + '!' 

if __name__ == "__main__": 
    app.run() 
1

Bottle là khuôn khổ một đơn tập tin, do đó, nó rất dễ dàng để triển khai nó trên GAE.

Chai là tương tự với Sinatra, hãy xem phần "hello world" ví dụ dưới đây:

Sinatra:

require 'sinatra' 
get '/hi' do 
    "Hello World!" 
end 

Chai:

from bottle import * 
@get('/hi') 
    def hi(): 
     return "Hello World!" 

Mặc dù tôi phải thừa nhận rằng Ruby là tốt hơn cho DSL.

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