使用https访问Flask后端接口

本次主要是记述使用https去访问Flask后端接口。最初的时候仅仅使用普通的Flask部署后端,只能实现IP+port的简单访问,但是对应https访问以及使用域名访问都不能够实现,于是在网上寻找解决办法,现在记下,为以后方便翻阅。

(留有笔记使用,新手上路,请多关照。

1 正常的Flask项目

   1.1 例程

# pip install Flask
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
    # 如果是在服务器端运行,建议还是加上Ip
    # app.run(host = '10.0.24.11')  # 这里的10.0.24.11是购买的服务器的内外IP,可以通过公网IP+端口访问

   1.2 运行以及测试

使用https访问Flask后端接口_第1张图片

 能够使用IP+port,但是域名+port不行

2 使用SSL后的Flask项目

   2.1 例程

使用https访问Flask后端接口_第2张图片

 这里的liuserver.top_nginx是SSL证书存在的文件夹,需要以.crt(好像.pem也行)和.key为后缀的文件(注意传入顺序不要反,先.crt后.key):

ssl_context = ("liuserver.top_nginx/liuserver.top_bundle.crt", "liuserver.top_nginx/liuserver.top.key")  # 不要反,传入顺序反了,就回出现错误。

'''
使用之前需要安装pyOpenSSL:
pip install pyOpenSSL
'''
# pip install Flask
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(ssl_context = ("liuserver.top_nginx/liuserver.top_bundle.crt", "liuserver.top_nginx/liuserver.top.key"))

    # 如果是在服务器端运行,建议还是加上Ip
    # 这里的10.0.24.11是购买的服务器的内网IP,可以通过公网IP+端口访问
    # app.run(host = '10.0.24.11', ssl_context = ("liuserver.top_nginx/liuserver.top_bundle.crt", "liuserver.top_nginx/liuserver.top.key"))  

   2.2 运行和测试

使用https访问Flask后端接口_第3张图片

 能使用域名访问(https://域名:port),但是此时无法使用IP+port访问。

你可能感兴趣的:(flask,python,后端)