【问题标题】:What is the right way of using user defined functions inside a classes in web.py在 web.py 的类中使用用户定义函数的正确方法是什么
【发布时间】:2023-04-05 15:03:01
【问题描述】:

我希望在索引类 POST 函数中使用用户定义的函数。

我尝试使用 self. someFunction() 没有帮助。谁能告诉我正确的做法是什么

import web
class index():
    def GET(self):
        return 'hello'

    def POST(self):
        data = web.data()
        sendmail(self)

def sendmail(ind):
        web.config.smtp_server = 'smtp.gmail.com'
        web.config.smtp_port = 587
        web.config.smtp_username = ''
        web.config.smtp_password = ''
        web.config.smtp_starttls = True
        web.sendmail('sender','receiver', 'subject ','message')

def main():
    ind = index()
    app = web.application(URLS, globals())
    app.run()

if __name__ == "__main__":
    main()

输出:在端口 8080 上运行的 Web 服务器,但 sendmail() 不会向预期的收件人发送任何邮件

【问题讨论】:

  • 请尽量让您的问题更清楚,同时写下您下次想要达到的目标。 Serge 和我给出了两个完全不同的问题的答案,我不知道我们谁说对了。
  • @Philip - 我已经更新了我的问题,我应该更清楚吗?
  • 是的。您应该尝试将您的问题减少到最小的工作示例。那是访问页面不起作用或发送邮件不起作用。 (在这里,我想它正在发送邮件..)
  • 我想发邮件。索引页打印一条问候消息。问题是:我想使用 sendmail() 函数,我想用一种干净的方式使用它。
  • @Philip- 在 data=web.data() 中获取数据后,我使用 POST() 从客户端应用程序获取数据。我想要解析收到的数据。我在哪里可以放置像 parse_data():, sendmail(): 这样的函数在我的函数中?

标签: python python-2.7 python-3.x web.py


【解决方案1】:

您只能使用self.method() 的语法object.method() 调用类中定义的方法。

如果你需要从一个方法调用一个简单的函数并让它知道对象,你可以这样做:

class index():

    def POST(self):
        # ...
        someFunction(self)

def someFunction(ind):
    'ind is an index object'
    #...

【讨论】:

  • def main(): ind=index() app = web.application(URLS, globals()) app.run() 。但仍然无法使用用户定义的功能。
  • -如何使用用户定义的函数在 POST 方法中发送邮件
  • @Zumbaa : 当你发帖到index 时会发生什么?
  • 在 data=web.data() 中获取数据后,我使用 POST() 从客户端应用程序获取数据。我想要解析收到的数据。我可以在哪里放置像 parse_data():, sendmail(): 这样的函数在我的函数中?
  • @Zumbaa:你试过了吗?发生了什么?您可以安全地从方法中调用函数。
猜你喜欢
  • 2021-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2012-06-18
相关资源
最近更新 更多