Tôi có một handler Yêu cầu và trang trí, tôi muốn làm việc với các đối tượng tự bên trong trang tríTiếp cận đối số chức năng từ trang trí
class MyHandler(webapp.RequestHandler):
@myDecorator
def get(self):
#code
Cập nhật: Xin lưu ý sự khác biệt giữa tự đầu tiên và thứ hai
class myDecorator(object):
def __init__(self, f):
self.f = f
def __call__(self):
#work with self
MyHandler
>get
(chức năng)>self
(argument)myDecorator
>__call__
(chức năng)>self
(argument)
các đối số tự nêu trên là khác nhau. Ý định của tôi là truy cập vào bản thân đầu tiên từ bên trong hàm __call__
, hoặc tìm cách để làm một việc tương tự.
Xin chào, tôi có thể truy cập vào đối số tự MyHandlers từ lấy hàm bên trong trình trang trí không?
Update2: Tôi muốn thực hiện một trang trí để làm việc với một tên đăng nhập tùy chỉnh trong công cụ google app:
Tôi có một lớp (RequestHandler):
class SomeHandler(webapp.RequestHandler):
@only_registered_users
def get(self):
#do stuff here
Và tôi muốn trang trí có chức năng để kiểm tra xem người dùng có đăng nhập hay không:
from util.sessions import Session
import logging
class only_registered_users(object):
def __init__(self, f):
self.f = f
def __call__(self):
def decorated_get(self):
logging.debug("request object:", self.request)
session = Session()
if hasattr(session, 'user_key'):
return self.f(self)
else:
self.request.redirect("/login")
return decorated_get
Tôi biết nếu sử dụng r được đăng nhập nếu có thuộc tính 'user_key' trong một đối tượng phiên.
Đó là mục tiêu chính Tôi quan tâm đến về trường hợp cụ thể này
Hãy cho tôi biết đề xuất của bạn/ý kiến nếu tôi làm điều gì đó sai!
Cảm ơn!
Ngoài ra, đặt "Google App Engine" trước một câu hỏi mà chỉ khoảng trang trí có thể làm cho câu hỏi của bạn có được quan điểm ít hơn. Các mục chung được xem rất nhiều, các câu hỏi về các nền tảng cụ thể được xem và trả lời chậm hơn. – marr75
Đã sửa, cảm ơn @ marr75 –
Không vấn đề gì, nếu câu hỏi của bạn được xem nhiều hơn, câu trả lời của tôi có thể được bỏ phiếu nhiều hơn. Đó là một chiến thắng. – marr75