【问题标题】:How to add your code to Webapp 2 framework for Google AppEngine如何将代码添加到 Google AppEngine 的 Webapp 2 框架
【发布时间】:2016-03-08 11:46:38
【问题描述】:

很抱歉,这似乎是一个非常愚蠢的问题,但我并不是严格的编程背景,而且我在使用 Google AppEngine 的 webapp2 框架来合并我的代码时遇到了很多困难。

我的代码用于登录我自己的电子邮件帐户并获取最新的电子邮件,然后返回内容和发件人等字段。我已经测试了这段代码,它工作正常。但是我在使用 webapp 2 框架时遇到了问题(错误 500)。

有人可以告诉我如何在这种情况下使用 webapp2 框架吗?

我的python代码:

import easyimap

host = "imap.gmail.com"
user = my_username
password = my_password
mailbox = "inbox"
imapper = easyimap.connect(host, user, password, mailbox)

mail1, mail2 = imapper.listup(2) # take latest 2 emails
mail1.uid #uid is email id
email_body = mail1.body
email_sender = mail1.from_addr
email_id = mail1.uid
email_receipt = mail1.to
email_cc = mail1.cc

email_list = [email_body, email_title,email_sender, email_id,
        email_cc,email_receipt]
print(email_list)

Webapp2 main.py

import webapp2

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('Hello Natalie!')

app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)

【问题讨论】:

  • 我使用 SDK 上传我的文件,然后 GAE 将托管它们。不知道它将如何为您工作。
  • 是的,我正在使用 GAE,但我不知道如何使我的代码适用于 webapp 框架 :(

标签: python google-app-engine webapp2


【解决方案1】:

类似:

# File: mailer.py - next to "main.py"
import easyimap
import webapp2

class MailerHandler(webapp2.RequestHandler):
    def get(self):
        host = "imap.gmail.com"
        user = my_username
        password = my_password
        mailbox = "inbox"
        imapper = easyimap.connect(host, user, password, mailbox)

        mail1, mail2 = imapper.listup(2) # take latest 2 emails
        mail1.uid #uid is email id
        email_body = mail1.body
        email_sender = mail1.from_addr
        email_id = mail1.uid
        email_receipt = mail1.to
        email_cc = mail1.cc

        email_list = [email_body, email_title,email_sender, email_id,
                email_cc, email_receipt]
        self.response.write(', '.join(email_list))

还有main.py:

import MailerHandler from mailer
import webapp2

app = webapp2.WSGIApplication([
    ('/mail-handler', MailerHandler)
], debug=True)

然后在浏览器中调用http://[SERVER:PORT]/mail-handler

如果您收到错误 500,您需要查看登录控制台并询问具体问题。

确保您已将“easyimap”复制到项目文件夹(在 main.py 旁边),并且该库不使用套接字并且是用纯 Python 编写的。阅读有关添加 3d 派对库的部分:https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring

【讨论】:

  • 谢谢,easyimap 并不能真正与 GAE 一起使用,但我使用了你的代码结构,并且它与我的应用程序一起用于另一部分。
  • 不客气。对答案投赞成票可能是“谢谢”的一个很好的补充。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
  • 1970-01-01
  • 2016-07-12
  • 2013-03-23
  • 1970-01-01
  • 2011-02-23
相关资源
最近更新 更多