Skip to main content
 首页 » 编程设计

python之从 GAE 中的 POST 内部调用方法

2025年05月04日9cmt

我的 main.py 看起来像这样:-

#!/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('</pre></body></html>') 
    **sendMail(self.request)** 
 
    def sendMail(request): 
        message.send() 
 
 
application = webapp.WSGIApplication( 
                                     [('/', MainHandler), 
                                      ('/sign', MainHandler)], 
                                     debug=True) 
 
def main(): 
    util.run_wsgi_app(application) 
 
 
if __name__ == '__main__': 
    main() 

如您所见,我正在尝试从 post 中调用另一个名为 sendEmail() 的类方法。这给出了编译错误。知道我哪里出错了吗?

提前致谢, BTR Naidu

请您参考如下方法:

您将类方法视为函数。选择一个:

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()