美文网首页我爱编程程序员
Python开发信息服务

Python开发信息服务

作者: __apple | 来源:发表于2018-05-27 18:53 被阅读0次

    我们首先建一个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
    

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


    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开发信息服务

        本文链接:https://www.haomeiwen.com/subject/xigzdftx.html