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

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 requestsres = 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 loggingimport 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 Flaskapp = 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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OpenGL Texture C++ 预览Camera视频
  • 一分钟了解网络安全风险评估!
  • 叠螺污泥脱水机的成本包括哪些方面
  • 2024年Ai智能绘画Stable Diffusion软件+整合包+保姆式教程
  • some TEM8 receptive words
  • 创新性处理Java编程技术问题的策略
  • 使用VSCode 安装SAP Fiori 开发所需插件
  • 云计算安全需求分析与安全保护工程
  • 首批最高级!华为云ROMA Connect获信通院全栈企业级集成平台优秀级
  • 前端开发中的响应式设计与媒体查询
  • Embedding 模型简介
  • 深入FastAPI:掌握使用多个关联模型的高级用法[Union类型]
  • 假期学习--load和initialize
  • Linux网络:总结协议拓展
  • 10个好用的查找下载中外文电子图书数据库
  • 【知识碎片】第三方登录弹窗效果
  • 03Go 类型总结
  • C学习-枚举(九)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • es6要点
  • Hibernate最全面试题
  • Lucene解析 - 基本概念
  • MySQL的数据类型
  • Promise面试题2实现异步串行执行
  • Redis 懒删除(lazy free)简史
  • vagrant 添加本地 box 安装 laravel homestead
  • vue-loader 源码解析系列之 selector
  • 分享几个不错的工具
  • 基于web的全景—— Pannellum小试
  • 理清楚Vue的结构
  • 利用DataURL技术在网页上显示图片
  • 普通函数和构造函数的区别
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • kubernetes资源对象--ingress
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • ######## golang各章节终篇索引 ########
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (4.10~4.16)
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (一)UDP基本编程步骤
  • (转)创业的注意事项
  • .chm格式文件如何阅读
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET NPOI导出Excel详解
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 常见的偏门问题
  • .NET 使用配置文件
  • .NET连接数据库方式
  • .Net实现SCrypt Hash加密