2012-06-24 35 views
5

Tôi đã trải qua giai đoạn tut bắt đầu nhận được cho python27 và động cơ ứng dụng: https://developers.google.com/appengine/docs/python/gettingstartedpython27/làm thế nào để tổ chức các file với ứng dụng python27 khuôn khổ cơ webapp2

Đến cuối của tut, tất cả các tầng lớp trong cùng một tập tin (helloworld.py) và bạn và bạn cấu hình router để chỉ một con đường url để một lớp ở dưới cùng của tập tin:

app = webapp2.WSGIApplication([('/', MainPage), 
          ('/sign', Guestbook)], 
          debug=True) 

Cái tut không che là làm thế nào để tôi orginise lớp học của tôi/file như của tôi ứng dụng phát triển. Ví dụ, tôi sẽ đặt MainPage trong một tệp riêng biệt và sau đó gọi 'nhập MainPage' trong tệp helloworld.py và thêm tuyến đường vào WSGIApplication? Có điều gì tự động hơn điều này không? Tôi nên gọi tập tin MainPage và nơi nào tôi nên lưu trữ nó?

Trả lời

7

Ưu tiên nhập tất cả các trình xử lý của bạn khi khởi động ứng dụng là tận dụng lợi thế của webapp2's lazy handler loading tải các mô-đun/gói nếu cần.
Vì vậy, bạn có một vài lựa chọn:

Lựa chọn 1, Handlers trong một module
Nơi MainPage trong tập tin khác (mô-đun) ở mức tương tự như helloworld.py tập tin của bạn:

 
/my_gae_app 
    app.yaml 
    helloworld.py 
    handlers.py 

Và trong định tuyến của bạn (trong helloworld.py) bạn sẽ làm:

app = webapp2.WSGIApplication([('/', 'handlers.MainPage'), 
           ('/sign', 'handlers.Guestbook')], 
           debug=True) 

Tùy chọn 2, Trình xử lý trong gói; có lẽ xem xét như ứng dụng của bạn trở nên lớn hơn
Như ứng dụng của bạn trở nên lớn hơn, bạn có thể muốn tạo ra một gói, trong đó để đặt bộ xử lý của bạn:

 
/my_gae_app 
    /handlers 
     __init__.py 
     guestbook.py 
     main.py 
    app.yaml 
    helloworld.py 

đường (trong helloworld.py):

app = webapp2.WSGIApplication([('/', 'handlers.main.MainPage'), 
           ('/sign', 'handlers.guestbook.Guestbook')], 
           debug=True) 
Các vấn đề liên quan