当前位置: 首页 > article >正文

flask下https教程

一、定义

  1. linux 下flask https 协议

二、实现

  1. linux 下flask https 协议

  2. 生成SSL证书和密钥文件。您可以使用工具如openssl来生成自签名SSL证书和密钥文件。运行以下命令生成证书和密钥文件:

openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

在这里插入图片描述
2. 将生成的cert.pem和key.pem文件放置在您的Flask应用程序目录中。
3.在您的Flask应用程序中添加以下代码来配置HTTPS:

from flask import Flask
from flask_sslify import SSLify
# pip install flask-sslify
app = Flask(__name__)

# 为Flask应用程序启用SSLify
sslify = SSLify(app)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8002,ssl_context=('cert.pem', 'key.pem'))

客户端

import requests


res = requests.post("https://127.0.0.1:8012/test",verify=False)   #无ssh 证书

print(res.json())

方式二、

#coding=utf8
from gevent import monkey
monkey.patch_all()
from flask import Flask,Response,stream_with_context,request,send_file
from gevent.pywsgi import WSGIServer
import json
import sys
import os
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '..'))
sys.path.append("..")
import logging

import time
logging.basicConfig(level=logging.INFO,format="%(asctime)s-%(filename)s-%(lineno)d-%(levelname)s-%(message)s")
from flask_sslify import SSLify
from flask import Flask

app = Flask(__name__)

now = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))

sslify = SSLify(app)


'''返回标准格式'''
class ResponseSocket():
    def BasicResponse(self,code=200,msg="成功",ans="",html=False,healthy=1,finish=False,use_time=0):
        return {"code":str(code),"msg":msg,"ans":ans,"html":html,"healthy":healthy,"finish":finish,"uesd_time":use_time}





@app.route('/test',methods=["POST","OPTIONS","GET"])
def modularity():
    res = "成功"
    return json.dumps(ResponseSocket().BasicResponse(ans=res,finish=True),ensure_ascii=False)


if __name__ == "__main__":
    print("server start")
    http_server = WSGIServer(('0.0.0.0', int(8012)), app,keyfile='key.pem', certfile='cert.pem')
    http_server.serve_forever()

方式三、

from flask import Flask  
  
app = Flask(__name__)  
  
class ResponseSocket():
    def BasicResponse(self,code=200,msg="成功",ans="",html=False,healthy=1,finish=False,use_time=0):
        return {"code":str(code),"msg":msg,"ans":ans,"html":html,"healthy":healthy,"finish":finish,"uesd_time":use_time}

@app.route('/test',methods=["POST","OPTIONS","GET"])
def modularity():
    res = "成功"
    return json.dumps(ResponseSocket().BasicResponse(ans=res,finish=True),ensure_ascii=False)

gunicorn --workers 3 --worker-class gevent --certfile=cert.pem --keyfile=key.pem app:app -b 0.0.0.0:8012

http://www.kler.cn/a/297514.html

相关文章:

  • docker-compose安装和简单使用
  • 嵌入式day41
  • Linux小程序:进度条
  • 音视频入门基础:WAV专题(8)——FFmpeg源码中计算WAV音频文件AVStream的time_base的实现
  • 人工智能,语音识别也算一种人工智能。
  • ML18_EM(Expectation-Maximization)算法详解
  • 字符编码检测
  • Vue.js 组件设计详解
  • 【C++ 面试 - 新特性】每日 3 题(七)
  • 音波效果(纯CSS实现)
  • LeetCode之区间
  • Gin-封装自动路由
  • 计算机毕业设计Pyhive+Spark招聘可视化 职位薪资预测 招聘推荐系统 招聘大数据 招聘爬虫 大数据毕业设计 Hadoop Scrapy
  • 数学建模笔记—— 线性规划
  • Chapter 11 脚手架Vue CLI使用步骤
  • PyTorch维度操作的函数介绍
  • linux高级学习12
  • 运维学习————Zabbix监控框架(1)
  • 高级算法设计与分析 学习笔记3 哈希表
  • LaTeX中算法环境横线/宽度调整(Algorithm)