OAuth2 및 OAuth1과 함께 Twitter, Facebook, Facebook 용 로그인 기능을 제공하는 Google App Enging (GAE) 앱을 설정하려고합니다. ... 따라서 사용하기 쉬운 자동 모듈 (http://peterhudec.github.io/authomatic/)을 선택했습니다. 하지만 이제는 몇 가지 문제가 있습니다 (전체 웹 서비스 프로그래밍에 익숙합니다).주어진 URL을 분할하는 방법을 정의하는 방법 (Google 애플리케이션 엔진의 경우 python webapp2에서)
그래서 내가 가지고있는 것은 :
import os
import sys
import webapp2
from authomatic import Authomatic
from authomatic.adapters import Webapp2Adapter
from config import CONFIG
authomatic_dir = os.path.join(os.path.dirname(__file__), 'authomatic')
sys.path.append(authomatic_dir)
# Instantiate Authomatic.
authomatic = Authomatic(config=CONFIG, secret='some random secret string')
# Create a simple request handler for the login procedure.
class Login(webapp2.RequestHandler):
# The handler must accept GET and POST http methods and
# Accept any HTTP method and catch the "provider_name" URL variable.
def any(self, provider_name):#HERE IS THE PROBLEM
...
class Home(webapp2.RequestHandler):
def get(self):
# Create links to the Login handler.
self.response.write('Login with <a href="login/gl">Google</a>.<br />')
# Create routes.
ROUTES = [webapp2.Route(r'/login/gl', Login, handler_method='any'),
webapp2.Route(r'/', Home)]
# Instantiate the webapp2 WSGI application.
application = webapp2.WSGIApplication(ROUTES, debug=True)
그리고 내가 오류는 다음과 같습니다
"any() takes exactly 2 arguments (1 given)"
이미 응용 프로그램을했기 때문에 내가() 또는 포스트() GET 어떤 대체하려고 내가 한 곳은 redirect('blog/42')
이고 get(self, post_id)
은 42
을 post_id
(예 : http://udacity-cs253.appspot.com/static/hw5.tgz (blog.py의 PostPage 클래스를보세요)에서 찾을 수 있음)으로 자동으로 나눕니다.
그래서 여기서 일어나는 모든 마법을 이해하지 못합니다. 누군가가이 오류를 해결하는 방법을 설명해 주시겠습니까? 그래서 get() - 매개 변수 provider_name
에 gl
값이 지정됩니다.
감사! webapp2.Route (r '/ login/<:.*>/', TwoParamTestHandler)를 사용하면 TwoParamTestHandler의 get() - 함수가 자동으로 def get (self, firstParam, secondParam)을 처리합니다. –
user1911091
예. 라우트 템플리트가 주어지면'get()'은 세 개의 인수, 즉'self'와 두 개의 일치 패턴 (하나는 위치 지정자, 하나는 이름이 지정됨)으로 호출됩니다. –