0

내 링크를 login/logout을 클릭하면 제대로 작동합니다 (링크 텍스트를 업데이트하면서 페이지를 다시로드).요청 처리기가 작동하지 않습니다.

또한 제출 된 양식의 입력 값을 전자 메일로 보낸 다음 동일한 페이지를로드하는 요청 처리기가 있습니다. 그것은 또한 정확하게 작동하고있는 것 같습니다 (정확한 값을 보여주는 이메일을 받았습니다).

양식을 제출 한 후 동일한 로그인/로그 아웃을 클릭하면 문제가 발생하지만 작동하지 않습니다. 로그인 페이지로 이동하지만 마침내 빈 화면이 표시됩니다. 그것은 주소 표시 줄에 내 애플 리케이션에 대한 URL을 보여줍니다,하지만 그 밖의 모든 것은 흰색입니다.

import os 
from google.appengine.ext.webapp import template 

import cgi 
import datetime 
import urllib 
import wsgiref.handlers 

from google.appengine.ext import db 
from google.appengine.api import users 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 
from google.appengine.api import mail 

class Greeting(db.Model): 
    author = db.StringProperty() 
    duties = db.StringProperty(multiline=True) 
    date = db.DateTimeProperty(auto_now_add=True) 

class e_mail(db.Model): 
    address = db.StringProperty() 

def guestbook_key(guestbook_name= users.get_current_user()): 
    return db.Key.from_path('Guestbook', guestbook_name or 'default_guestbook') 

class MainPage(webapp.RequestHandler): 
    def get(self): 
     guestbook_name=self.request.get('guestbook_name') 
     greetings_query = Greeting.all().ancestor(
     guestbook_key(guestbook_name)).order('-date') 
     greetings = greetings_query.fetch(1000) 
     nickname = None 

     if users.get_current_user(): 
      url = users.create_logout_url(self.request.uri) 
      url_linktext = 'LOGOUT' 

      template_values = { 
       'greetings': greetings, 
       'url': url, 
       'url_linktext': url_linktext, 
      } 

      path = os.path.join(os.path.dirname(__file__), 'about.html') 
      self.response.out.write(template.render(path, template_values)) 
     else: 
      url = users.create_login_url(self.request.uri) 
      url_linktext = 'LOGIN' 

      template_values = { 
       'greetings': greetings, 
       'url': url, 
       'url_linktext': url_linktext, 
      } 

      path = os.path.join(os.path.dirname(__file__), 'about.html') 
      self.response.out.write(template.render(path, template_values)) 

class Email_SignUp(webapp.RequestHandler): 
    def post(self): 
     user = users.get_current_user() 
     guestbook_name=self.request.get('guestbook_name') 
     greetings_query = Greeting.all().ancestor(
     guestbook_key(guestbook_name)).order('-date') 
     greetings = greetings_query.fetch(1000) 
     nickname = None 

     if users.get_current_user(): 
      url = users.create_logout_url(self.request.uri) 
      url_linktext = 'LOGOUT' 

      template_values = { 
       'greetings': greetings, 
       'url': url, 
       'url_linktext': url_linktext, 
      } 

      e_mail.address = self.request.get('emailAdd') 

      path = os.path.join(os.path.dirname(__file__), 'about.html') 
      self.response.out.write(template.render(path, template_values)) 

      mail.send_mail(sender="Do Not Reply <[email protected]>", 
         to="Do Not Reply <[email protected]>", 
         subject=e_mail.address, 
         body=""" 
          Here is the test message        
          """) 

     else: 
      url = users.create_login_url(self.request.uri) 
      url_linktext = 'LOGIN' 

      template_values = { 
       'greetings': greetings, 
       'url': url, 
       'url_linktext': url_linktext, 
      } 

      e_mail.address = self.request.get('emailAdd') 

      path = os.path.join(os.path.dirname(__file__), 'about.html') 
      self.response.out.write(template.render(path, template_values)) 

      mail.send_mail(sender="Do Not Reply <[email protected]>", 
         to="Do Not Reply <[email protected]>", 
         subject=e_mail.address, 
         body=""" 
          Here is the test message        
          """) 

답변

1

일반적으로 사용자는 MainPage에 액세스하고 로그인/로그 아웃이 완료되면 MainPage()로 리디렉션되는 로그인 링크를 만듭니다.

그러나 양식을 제출하면 로그인 링크가 생성되어 Email_Signup()으로 리디렉션됩니다. 사용자가 클릭하면 로그인을 시도한 다음 GET 처리기가없는 Email_Signup()으로 리디렉션되므로 빈 페이지 만 표시됩니다.

관련 문제