|
本帖最后由 白冥 于 2024-4-25 12:55 编辑
我们用一个20*50大小的文本域(textarea)写日志,指定文件名,并由fetchAPI发送为json
- from flask import Flask, request,jsonify,json
- from flask_cors import CORS
- import os
- cwd=os.getcwd()
- dst=cwd[0:2]+'/Logs/'
- if os.path.isdir(dst):
- pass
- else:
- os.makedirs(dst)
- app=Flask(__name__)
- cors=CORS(app,resources={r"/*":{"origins":"*"}})
- @app.route('/save_log',methods=['POST','OPTIONS','GET'])
- def save_log():
- data=request.data
- if data:
- message=json.loads(data)
- with open(dst+message['filename']+'.txt','w') as f:
- f.write(message['log'])
- else:
- pass
- return jsonify({"信息":"已成功上传为txt文件"})
- if __name__ == '__main__':
- app.run(debug=True)
复制代码
由于Python Flask框架默认监视端口为5000,所以前端部分要完整给出,由于在本机,所以用的是巡回地址。
写这段代码的时候遇到过不少问题,比如CORS越域,不得不再下载个flask-corsPython包,而在处理时候,还遇到过http请求有三个却只有一个有内容导致json反序列化失败的现象,干脆有才反序列化,没有直接pass过去。
由于我发的时候发现发这里代码好像没有缩进,所以给加了空格,但不能保证发出来空格在不在。python对缩进有严格要求,所以如果大家看到发出来没有缩进,我也没办法。
|
评分
-
查看全部评分
- 白冥
:这里前端部分的代码好像被吞了:
<!DOCTYPE html>
<html lang=\"en\">
<head>
<meta charset=\"UTF-8\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
<title>savelog</title>
</head>
<body>
<textarea id=\"logArea\" rows=\"20\" cols=\"50\"></textarea>
<input type=\"text\" id=\"filename\" placeholder=\"my_log\"/>
<button onclick=\"saveLog()\">一键保存</button>
<script>
function saveLog(){
const log = document.getElementById(\'logArea\').value;
const filename=document.getElementById(\'filename\').value;
const url=\'http://127.0.0.1:5000/save_log\';
const argsObject={
method:\'OPTIONS\',
headers:{
\'Content-Type\':\"application/json\"
},
body:JSON.stringify({\"log\":log,\"filename\":filename})
}
fetch(url,argsObject);
}
</script>
</body>
</html>
-
|