<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      mail_api_flask 接口開發及uwsgi部署項目

      一、項目代碼

      #vim /usr/local/src/mail_api_flask/run.py
      
      """
          mail_api_flask 為基于Flask web框架開發的在線發送郵件api,實現功能復用。支持html模板郵件。
      """
      from flask import Flask
      from flask import request
      from flask_mail import Mail, Message
      from concurrent.futures import ThreadPoolExecutor  # 線程池
      import time
      
      executor = ThreadPoolExecutor(max_workers=10)  # max_workers 配置最大線程數
      app = Flask(__name__)
      
      
      def sendmail(subject, sender_name, recipients, html):
          """
          發送郵件
          :param subject: 郵件主題
          :param sender_name: 發件人別名
          :param recipients: 接收郵箱,list格式
          :param html: html內容模板
          :return: 狀態
          """
          app.config['MAIL_SERVER'] = 'smtp.qq.com'
          app.config['MAIL_PORT'] = 465
          app.config['MAIL_USERNAME'] = 'xxxxx@foxmail.com'
          app.config['MAIL_PASSWORD'] = 'xxxxx'
          app.config['MAIL_USE_TLS'] = False
          app.config['MAIL_USE_SSL'] = True
          mail = Mail(app)
          print("sendmail is running..." + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
      
          try:
              msg = Message(subject=subject, sender=(sender_name, 'xxxxx@foxmail.com'), recipients=recipients)
              msg.html = html
              executor.submit(mail.send(msg))  # 多線程發送郵件
              status = {"msg": "Successed", "code": "1000", "sendtime": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())}
              print("郵件已成功發送到【%s】" % recipients + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
          except Exception as e:
              status = {"msg": e, "code": "1001", "sendtime": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())}
              print("郵件未發送到【%s】" % recipients + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
          return status
      
      
      # http://127.0.0.1:5000/api/v1/sendmail
      @app.route("/api/v1/sendmail", methods=["GET", "POST"])
      def index():
          if request.method == "POST":
              subject = request.values.get("subject")
              sender_name = request.values.get("sender_name")
              recipients = request.values.get("recipients")
              html = request.values.get("html")
              return sendmail(subject=subject, sender_name=sender_name, recipients=[recipients], html=html)
          return "sendmail接口運行正常!" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
      
      
      if __name__ == '__main__':
          app.run(debug=False, host='0.0.0.0')

       

      二、uwsgi部署項目

      1、創建虛擬環境

      cd /usr/local/src/pyENV/
      virtualenv mail_api_flask_EN

       

      2、創建uwsgi.ini文件

      # vim /usr/local/src/mail_api_flask/uwsgi/uwsgi.ini
      
      [uwsgi]
      #服務端口號
      http = 127.0.0.1:5000
      #項目路徑
      chdir  = /usr/local/src/mail_api_flask
      #wsgi文件 run就是flask啟動文件去掉后綴名 app是run.py里面的Flask對象 
      module  = run:app
      virtualenv =/usr/local/src/pyENV/mail_api_flask_ENV
      wsgi-file = /usr/local/src/mail_api_flask/run.py
      pidfile = /usr/local/src/mail_api_flask/master.pid
      #指定工作進程
      processes  = 4
      #主進程
      master = true
      #每個工作進程有2個線程
      threads = 2
      #指的后臺啟動 日志輸出的地方
      daemonize = /usr/local/src/mail_api_flask/uwsgi/logs/uwsgi.log
      #保存主進程的進程號
      pidfile = master.pid
      #服務啟動的參數
      pyargv = -f web_etl.yml

      3、uwsgi 啟動 停止 重新啟動 命令

      #啟動
      uwsgi --ini uwsgi.ini
      #停止
      uwsgi --stop master.ini
      #重新啟動
      uwsgi --reload master.ini

       

      4、創建start_project.sh文件,賦予可執行權限

      #chmod +x start_project.sh
      
      #vim /usr/local/src/mail_api_flask/uwsgi/start_project.sh
      
      uwsgi --ini /usr/local/src/mail_api_flask/uwsgi/uwsgi.ini

       

      5、編輯nginx配置文件

          # sendmail api
          server {
              listen       8082;
              server_name  _;
      
              location =/sendmail {
                  #include /etc/nginx/uwsgi_params;
                  proxy_pass http://127.0.0.1:5000/api/v1/sendmail;
              }
      
          }

       

      6、設置開機自啟動

      #賦予rc.local可執行權限
      chmod +x /etc/rc.d/rc.local
      
      #在rc.local添加啟動腳本路徑
      /usr/local/src/mail_api_flask/uwsgi/start_project.sh
      
      #使rc.local文件生效
      source /etc/rc.d/rc.local

       

      posted @ 2023-03-21 17:20  QiuPing  閱讀(60)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 性男女做视频观看网站| 亚洲国产精品一区第二页| 太深太粗太爽太猛了视频| 亚洲最大日韩精品一区| 成人一区二区三区久久精品| 亚洲欧洲日产国码无码久久99| 中文字幕无线码免费人妻| 亚洲精品日本一区二区| 天天躁夜夜躁av天天爽| 乌兰察布市| 国产综合久久久久久鬼色| 在线无码免费的毛片视频| 肥大bbwbbw高潮抽搐| 欧美人与zoxxxx另类| 制服 丝袜 亚洲 中文 综合| 纳雍县| 四虎永久精品在线视频| 国产精品久久久天天影视香蕉| 91精品国产免费人成网站| 日韩午夜福利片段在线观看| 少妇人妻偷人精品免费| 噜噜噜噜私人影院| 四虎永久精品免费视频| 东京热加勒比无码少妇| 亚洲熟妇色xxxxx亚洲| 乱码中文字幕| 亚洲日韩av无码一区二区三区人| 偷拍久久大胆的黄片视频| 四虎成人在线观看免费| 日本一高清二区视频久二区| 97人妻免费碰视频碰免| 国产在线观看免费观看不卡| 一区二区免费高清观看国产丝瓜| 红原县| 亚洲人成网站18禁止无码| 自拍视频在线观看成人| 亚洲av无码精品色午夜| 亚洲一区二区约美女探花| 国产精品久久久一区二区| 国产精品色悠悠在线观看| 蜜桃无码一区二区三区|