flask下https教程

news2024/11/10 17:03:12

一、定义

  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.coloradmin.cn/o/2119334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIE和CCIE,哪个含金量更高点?

在现在内卷的大环境下,技术岗可谓人人自危,也因此各种认证的重视程度直线升高。 特别是华为认证的HCIE和思科认证的CCIE,它们都代表着网络技术领域的顶尖水平。 但面对这两个高含金量的认证,不得不让人问出这个问题:同…

找到办法了!一个站点,搞定所有访问权限需求

在知识库的构建与管理过程中,如何平衡信息的公开与私密性始终是一大挑战。传统方法往往需要建立多个具有不同访问权限的站点,操作繁琐且难以维护。尤其当企业需同时向公众和内部成员提供知识文章时,这一问题尤为突出。用户频繁反馈&#xff0…

振弦式渗压计安装流程全面指南

在大坝安全监测体系中,振弦式渗压计作为关键设备之一,承担着监测大坝内部渗流压力变化的重任。其安装质量直接关系到监测数据的准确性和大坝安全的评估。因此,制定一套科学、精细的安装流程,对于确保渗压计的正常运行和延长使用寿…

什么是生成式 AI?

人工智能 (AI) 通过使用机器学习与环境交互并执行任务来模仿人类行为,而无需明确指示要输出的内容。 生成式 AI 描述 AI 中用于创建原创内容的一类功能。 人员通常与聊天应用程序中内置的生成式 AI 交互。 此类应用程序的一个常见示例是 Microsoft Copilot&#xf…

Telephony STK 域选

在场测过程中,经常遇到STK功能不生效,点击STK会出现无响应的问题. 一般需要对比DUT和REF来确认问题所在。一般情况下,出现类似问题需要check是否域选是一致的。 测试机 对比机 对比机为展锐平台会出现弹框情况,从Log看,相关业务进行了报错回落,从IMS业务回落到了…

基于spring的博客系统(一)

通过前⾯课程的学习, 我们掌握了Spring框架和MyBatis的基本使⽤, 并完成了图书管理系统的常规功能 开发, 接下来我们系统的从0到1完成⼀个项⽬的开发; 1. 项⽬介绍 使⽤SSM框架实现⼀个简单的博客系统 共5个⻚⾯ 1. 用户登录 2. 博客发表⻚ 3. 博客编辑⻚ 4. 博客…

【Java算法】模拟

🔥个人主页: 中草药 🔥专栏:【算法工作坊】算法实战揭秘 🧣 一.模拟算法 模拟算法和传统的算法有一些不同之处,更多的是对题目要求的理解,通过代码的方式去模拟实现一道题目在现实中的实现方法…

接口基础知识4概念纠正与补充说明

​接口基础知识4 1 请求方法的幂等性 幂等性的理解是没有问题的。但是请求方法和幂等性没有直接的关联。 在 REST API 设计中,幂等性非常重要,因为它保证了在重复请求的情况下,资源的状态始终保持一致,不会因为重复请求而发生副…

量化交易backtrader实践(一)_数据获取篇(1)_数据准备

我们需要使用backtrader来做量化交易回测,先解决一些前置问题: 需要回测哪几支股票,或者即时选取股票即时选取股票以什么形式,代码还是名称这些数据的格式是怎么样的,backtrader如何接收 在解决这些前置问题的过程中…

如何抽取一个特定页面从devExpress的例程集合中

https://download.csdn.net/download/haoyujie/89729356https://download.csdn.net/download/haoyujie/89729356相关资源。 devExpress界面库的例程的设计是有必要来吐槽的。其紧耦合和大捆绑,我认为是devExpress很重要的不友好,导致可用性差和学习曲线…

让AI算算国庆中秋,你究竟多休了几天

最近,2024年中秋和国庆的放假调休安排火速登上热搜: “上6休3,上3休2,上5休1,上2休7,再上5休1。” 是不是看着眼花缭乱?其实不仅你懵了,广大网友也集体抓狂:“这比高考…

Spring介绍和Log4j2

目录 一、模块组成二、基本用例-Spring框架基本使用、原理三、启用日志框架 Spring 有两个最核心模块: IoC 和 AOP。 IoC:Inverse of Control 的简写,译为“控制反转”,指把创建对象过程交给 Spring 进行管理。AOP:Asp…

python爬虫代理ip池搭建

最近大量爬取数据的时候总会遇到被封ip的情况,所有打算自己搭建一个代理ip池来使用。本次使用的是开源的ip代理池项目ProxyPool 1.下载redis数据库 redis安装 这里我选择直接下载redis的解压包形式,方便安装。下载地址:发布 TPORADOWSKI/RED…

Linux网络协议栈的实现

网络协议栈是操作系统核心的一个重要组成部分,负责管理网络通信中的数据包处理。在 Linux 操作系统中,网络协议栈(Network Stack)负责实现 TCP/IP 协议簇,处理应用程序发起的网络请求并与底层的网络硬件进行交互。本文…

关于ansible自动化运维工具

成长路上不孤单😊【14后,C爱好者,持续分享所学,如有需要欢迎收藏转发😊😊😊😊😊😊😊!!!!&#xff…

空间工作记忆策略在控制网络和默认模式网络中的激活差异

摘要 空间位置可以通过不同的表征方式和策略在工作记忆中进行编码和维持。精细的表征方式提供了详细的刺激信息,但对认知要求较高,并且容易出现不准确的情况。精细表征中的不确定性可以通过使用粗略但稳健的类别表征来补偿。本研究采用个体差异法来识别…

如何将java文件导入idea中运行和推送到Gitee仓库问题

(注意:如果不上传到Gitee平台,就请忽略最后每个方法的最后一步) 另外如果导入的是Maven文件,先要指定好自己本地的Maven库的位置和Setting 文件,然后重新加载一下maven即可。 第一种方法 : 1、导入Java文…

C语言——将一个字符串中的元音字母复制到另一个字符串,然后输出。

写一函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。 注意,字符串b必须以\0为结束标志,C 语言中的字符串必须以 \0(空字符)结束,否则输出函数(如 puts)无法…

精益生产现场管理和改善的实战路径

精益生产,作为制造业的革新利器,不仅能够帮助企业降低成本、提升质量,还能大幅度提高生产效率。但如何将这一理念从理论转化为实际行动,真正落地于生产现场,成为许多管理者面临的难题。今天,就让天行健咨询…

【前端】探索webpack3项目build速度优化, 优化个p

文章目录 背景uglifyjs-webpack-pluginwebpack3 压缩混淆js 优化踩坑。结论 背景 webpack3 babel7 uglifyjs-webpack-plugin的项目,build起来是什么体验。 大抵是写了两个月后,发现build时间从120s激增到400s。而这400秒中,有50多秒是Ugli…