2010-07-26 20 views
6

Tôi mới sử dụng GAE và tôi đang tạo một ứng dụng với khung công tác webapp. Tôi đã tự hỏi khi nào bạn thiết lập xử lý trong app.yaml của bạn và khi bạn xác định chúng trong WSGI của bạn?Máy ứng dụng của Google: Trình xử lý và các url WSGI

Lúc đầu, tôi nghĩ bạn chỉ có một tệp main.py chính chạy WSGIApplication nhưng tôi nhận thấy nếu bạn muốn sử dụng ủy quyền GAE, bạn xác định rằng trong trình xử lý. Vậy điều đó có nghĩa là bạn chạy nhiều WSGIApplications?

Tôi đã đọc tài liệu về "Yêu cầu đăng nhập hoặc trạng thái quản trị viên" và có vẻ như họ có các ứng dụng khác nhau cho các vai trò khác nhau.

Có thể giống như thế này?

- general.py - đăng nhập:
- user.py - đăng nhập: cần
- admin.py: - đăng nhập: admin

Nhưng có lẽ đó là xấu để có url WSGI của bạn lây lan tất cả ở khắp nơi?

Nếu tôi nhớ chính xác nếu bạn chạy django trên GAE, bạn trỏ đến một tệp py và để khung làm việc xử lý mọi thứ?

Tôi không muốn sử dụng Django, vì vậy đã tự hỏi nếu có ai có một số gợi ý/thực hành tốt nhất về cách làm url/hanlders với webapp?

Trả lời

9

Có thể chấp nhận phương pháp định tuyến URL.

app.yaml dựa trên URL routing
Nếu bạn có thể dễ dàng cấu trúc ứng dụng của bạn để sử dụng app.yaml định tuyến (và ủy quyền), sau đó nó có giá trị cố gắng: nó sẽ ít mã bạn sẽ phải gỡ lỗi , kiểm tra và bảo trì.

Dưới đây là một ví dụ (từ Google) với nhiều điểm entry: http://google-app-engine-samples.googlecode.com/svn/trunk/gdata_feedfetcher/

Performance nên vượt trội với app.yaml ủy quyền: kịch bản Python của bạn sẽ không cần phải được chạy để xác định nếu người dùng là một admin của trang web.

một bảng URL-mapping
Nếu ứng dụng của bạn cần một cái gì đó xa hơn cơ bản URL định tuyến và ủy quyền thì bạn có thể thấy mình có một app.yaml tương đối thưa thớt và sử dụng một bảng URL-mapping lớn hơn.

Ví dụ: bạn muốn hiển thị trang cho tất cả người dùng, nhưng ngoài ra muốn có liên kết "đăng nhập" để hiển thị cho quản trị viên. This code (for a simple blog) sử dụng cấu trúc này.

+0

Cảm ơn mã ví dụ Adam luôn tốt đẹp. Mã blog thực sự sẽ giúp tôi. – Pickels

+0

Không nhiều trình xử lý thêm vào thời gian tải của ứng dụng? Họ phải nhập cùng một mô-đun và nhiều trình xử lý sử dụng nhiều không gian hơn chỉ 1. – stesch

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