Вызов метода изнутри POST в GAE - PullRequest
2 голосов
/ 18 октября 2011

У меня main.py выглядит так: -

<code>#!/usr/bin/env python

import cgi
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import util

# imports for sending mail
from google.appengine.api import mail
from google.appengine.api import users

message = mail.EmailMessage(sender="Support <xyz@gmail.com>", subject="Email from")

message.to = "info <info@xyz.com>"
message.html = """
<html><head></head><body>
Dear <b>I</b>nfo: <br /><br />
message.<br /><br />

Please let us know if you have any questions.<br /><br />

The flxlmonline.com Support Team
</body></html>
"""


class MainHandler(webapp.RequestHandler):
    def get(self):
        self.response.out.write("""
          <html>
            <body>
              <form action="/sign" method="post">
              <p>
                <label for="name">Name</label> <input type="text" name="name">
              </p>
              <p>
                <label for="email">E-mail</label> <input type="email" name="email">
              </p>
              <p>
                <label for="message">Message</label> <textarea name="message"></textarea>
              </p>
                <div><input type="submit" value="Sign Guestbook"></div>
              </form>
            </body>
          </html>""")

    def post(self):
    self.response.out.write('<html><body>You wrote:<pre>')
        self.response.out.write(cgi.escape(self.request.get('message')))
        self.response.out.write('
') ** Sendmail (self.request) ** def sendMail (запрос): message.send () application = webapp.WSGIApplication ( [('/', MainHandler), ('/ знак', MainHandler)], отлаживать = True) def main (): util.run_wsgi_app (приложение) если __name__ == '__main__': главный()

Как видите, я пытаюсь вызвать другой метод класса с именем sendEmail () изнутри post. Это дает ошибку компиляции. Любая идея, где я иду не так?

Спасибо заранее, БТР Найду

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Вы рассматриваете метод класса как функцию. Выберите один:

def sendMail(request):
    message.send()

class MainHandler(webapp.RequestHandler):

    def post(self):
        sendMail(self.request)

Или:

class MainHandler(webapp.RequestHandler):

    def sendMail(self):
        # request = self.request
        message.send()

    def post(self):
        self.sendMail()
0 голосов
/ 18 октября 2011

Вы пробовали с?:

def post(self):
    # ----
    self.sendMail(self.request)

def sendMail(self, request):
    message.send()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...