前两天服务器刚刚备案完成,我就迫不及待的将服务器所需要的服务安装好,然后将自己建好的网站部署到Nginx服务器上,众嗦粥汁,网站部署完成后,还剩最后一步就是配置nginx.conf文件的SSL,配置好之后就可以通过https这个协议去访问自己的网站了。
当上述都弄好了之后,我是用python语言写的后端程序的接口,用来进行数据库的增、删、改、查;在增、删、改这三个功能之前我先把查询数据库的功能给写好了,便于用于测试。当我写好这个查询功能后,前端那边用的是fetchAPI:
fetch('http://xxxxxx.xx',{
methods:'GET'
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP 错误!状态码: ${response.status}`);
}
return response.json();
})
.then(data => {
console.log(data);
})
});
在后端这边用的框架式flask框架:
import socket
from flask import Flask,jsonify
import pymysql
conn = pymysql.connect(
host=替换成你的数据库的远程地址,
user=替换成你的数据库的用户名,
password=替换成你的数据库的密码,
port=替换成你的数据库的端口号,
db=替换成你的数据库的名字
)
app = Flask(__name__)
cursor=conn.cursor()
@app.route('/data',methods=['GET'])
def data():
cursor.execute("SELECT 替换成你的数据库名字或者通配符 FROM 替换成你的数据库的表名")
data_tuples = cursor.fetchall()
# 返回JSON格式的数据列表
return jsonify(response)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug=True)
# db.close()
当一切准备就绪后我就迫不及待打开网站进行请求测试,就在这时,出现意外了:
404 Not Found:资源未找到(原本的错误提示是https向http发送一个不安全的请求......)
当时挺傻眼的,我当时在前端的请求链接直接改成https就是报错404,然后不断地查资料,然后问到一个前端大佬,他告诉我说是跨协议了要我去做nginx代理,他让我直接把nginx配置文件给他,他给我改完后发过来,我替换掉后,重新启动了一下nginx服务,再次试的时候还是这种错误......就挺无语的。然后在网上找nginx反向代理的还有这个路由的代理都做了一个遍还是不行,真的挺难受.....也找过vscode插件通灵义码这个ai了,也没有太大的作用。
可能是提问的不对,后来那个大佬告诉我xxxx没有给配置域名证书,然后我灵机一动,去浏览器的chatGPT插件问了一下:怎么给python后端flask框架配置ssl
于是就有了下边的代码:
import socket
from flask import Flask,jsonify
import pymysql
conn = pymysql.connect(
host=替换成你的数据库的远程地址,
user=替换成你的数据库的用户名,
password=替换成你的数据库的密码,
port=替换成你的数据库的端口号,
db=替换成你的数据库的名字
)
app = Flask(__name__)
cursor=conn.cursor()
@app.route('/data',methods=['GET'])
def data():
cursor.execute("SELECT 替换成你的数据库名字或者通配符 FROM 替换成你的数据库的表名")
data_tuples = cursor.fetchall()
# 返回JSON格式的数据列表
return jsonify(response)
# context = (替换成你的ssl域名证书文件的路径,替换成你的ssl域名证书的秘钥文件的路径)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,ssl_context=context,debug=True)
# db.close()
然后就把折麼我的一个问题解决了,运行python试了一下,请求链接已经是https了!!!
有需要的小伙伴可以直接拷贝走代码了!
下次我们聊聊这个前端返回的为什么是一个二维数组,而不是一个包含数据库列名的JSON文件