Python开发信息服务

我们首先建一个python的项目,项目名为message-thrift-python-service,接着在建立一个thrift文件夹用于存放thrift文件。最后在建一个
message.thrift 内容如下

namespace go com.apple.thrift.message
namespace py message.api

service MessageService {
    bool sendMobileMessage(
        1:string mobile,
        2: string message
    );
    bool sendEmailMessage(
        1:string email,
        2: string message
    );
}

这时我们进入对应的项目目录执行

C:\Users\apple\PycharmProjects\message-thrift-python-service\thrift>thrift --gen py -out ../ message.thrift

最终生成了,这样的目录结构


Python开发信息服务_第1张图片
v_thrift.png

ok,现在呢我们在message下面建一个名为message_service.py的文件用于书写我们的接口。
下面给大家贴出message_service.py文件的代码

from message.api import MessageService
    from thrift.transport import TSocket
    from thrift.transport import TTransport
    from thrift.protocol import TBinaryProtocol
    from thrift.server import TServer

    class MessageServiceHandler:
        def sendMobileMessage(self, mobile, message):
            print("sendMobileMessage")
            return True
        def sendEmailMessage(self, email, message):
            print("sendEmailMessage")
            return True


    if __name__ == "__main__":
        handler = MessageServiceHandler()
        processor = MessageService.Processor(handler)
        # 定义监听的端口
        transport = TSocket.TServerSocket("localhost", "8080")
        # 定义传输的方式
        tfactory = TTransport.TFramedTransportFactory()
        # 定义传输协议(二进制的传输协议)
        pfactory = TBinaryProtocol.TBinaryProtocolFactory()

        server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
        print("python thrift server start")
        server.serve()
        print("python thrift server exit")

ok,我们先运行一把,出现了python thrift server start这说明我们服务运行起来了。
现在我们就专心的把sendMobileMessage sendEmailMessage这两个接口实现掉就可以了
我们在写发邮件功能之前需要先引入一个包

import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = ''
class MessageServiceHandler:
    def sendMobileMessage(self, mobile, message):
        print("sendMobileMessage")
        return True
    def sendEmailMessage(self, email, message):
        print("sendEmailMessage, email:" + email+", message:"+message)
        messageObj = MIMEText(message, "plain", "utf-8")
        messageObj['From'] =
        return True

接下来我们来生成Go代码,

thrift --gen go -out ./../../message-thrift-service-api/ message.thrift

你可能感兴趣的:(Python开发信息服务)