GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 2347|回复: 33
收起左侧

[实用工具] 基于Python Flask框架的一键保存为txt文件的两段代码

[复制链接] |关注本帖

邪恶的面具海盗弯钩神秘的红茶冒险用绷带魔法石碑箭术卷轴质量效应三部曲

     楼主| 白冥 发表于 2024-4-25 00:49:03 | 显示全部楼层 |阅读模式 <
    本帖最后由 白冥 于 2024-4-25 12:55 编辑

    我们用一个20*50大小的文本域(textarea)写日志,指定文件名,并由fetchAPI发送为json
    1. from flask import Flask, request,jsonify,json
    2. from flask_cors import CORS
    3. import os
    4. cwd=os.getcwd()
    5. dst=cwd[0:2]+'/Logs/'
    6. if os.path.isdir(dst):
    7.     pass
    8. else:
    9.     os.makedirs(dst)
    10. app=Flask(__name__)
    11. cors=CORS(app,resources={r"/*":{"origins":"*"}})
    12. @app.route('/save_log',methods=['POST','OPTIONS','GET'])
    13. def save_log():
    14.     data=request.data
    15.     if data:
    16.         message=json.loads(data)
    17.         with open(dst+message['filename']+'.txt','w') as f:
    18.             f.write(message['log'])
    19.     else:
    20.         pass
    21.     return  jsonify({"信息":"已成功上传为txt文件"})
    22. if __name__ == '__main__':
    23.     app.run(debug=True)
    复制代码

    由于Python Flask框架默认监视端口为5000,所以前端部分要完整给出,由于在本机,所以用的是巡回地址。
    写这段代码的时候遇到过不少问题,比如CORS越域,不得不再下载个flask-corsPython包,而在处理时候,还遇到过http请求有三个却只有一个有内容导致json反序列化失败的现象,干脆有才反序列化,没有直接pass过去。
    由于我发的时候发现发这里代码好像没有缩进,所以给加了空格,但不能保证发出来空格在不在。python对缩进有严格要求,所以如果大家看到发出来没有缩进,我也没办法。

    评分

    参与人数 2血液 +9 追随 +2 收起 理由
    除却巫山不是云 + 6 + 1 赞一个!
    Riverlethe + 3 + 1

    查看全部评分

      收起(1)
    • 白冥 白冥 :这里前端部分的代码好像被吞了:
      <!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>
      2024-04-25 00:51 回复
    • 我也说一句

    回复

    使用道具 举报

    美恐:新的开始风物长宜最终幻想XIV生化危机:复仇赛博朋克2077安杜因·乌瑞恩约翰-117超人

      tjw2469 发表于 2024-4-25 00:59:49 | 显示全部楼层 <
      回复

      使用道具 举报

      内森·德雷克人到中年【夏日限定】夏日的泰凯斯業火死鬥传奇咆哮虎的冠军之路相约于群星

        koh 发表于 2024-4-25 01:02:01 | 显示全部楼层 <
        如果是便利的东西,建议发在code区
        回复

        使用道具 举报

        自定义男从Homunculus诺克提斯·路西斯·伽拉姆Forever Titanic钢铁侠永远的克叔【夏日限定】夏日的泰凯斯极·龙の意苏格兰圆脸胖鸡[Pro Max]虚空之海的鲸史莱姆牧场

          轮回2L 发表于 2024-4-25 01:03:12 | 显示全部楼层 <
          回复

          使用道具 举报

          漂洋小船冒险用指南针破损的旧书人鱼之泪雪王的心脏苏格兰圆脸胖鸡[Pro Max]丛林的鸟飞走了不曾寄出的信件幽灵竹筒『随时随地开启!』

            凯诺斯 发表于 2024-4-25 01:03:47 | 显示全部楼层 <
            看起来挺强大的代码惹,好专业的感觉
            回复

            使用道具 举报

            荧光水母河豚寿司『召唤好运的角笛』鎏彩万幢女巫之路虚空之海的鲸永远的克叔業火死鬥实现梦想官复原职

              娱乐法师火布偶 发表于 2024-4-25 01:18:56 | 显示全部楼层 <
              楼主的意思是要求助一个人看看代码吗?如果是求助,那需要发悬赏帖的
                收起(2)
              回复

              使用道具 举报

              荧光水母发条八音盒我的冶金打火机雪王的心脏不曾寄出的信件遗留之人的城堡『还乡歌』永亘环

                thh866 发表于 2024-4-25 01:35:25 | 显示全部楼层 <
                回复

                使用道具 举报

                鎏彩万幢自定义男从Homunculus晓月终焉亚力斯塔尔守望者指挥官徽章加勒特·霍克桑克瑞德·沃特斯奧倫

                  Kansen 发表于 2024-4-25 01:49:31 | 显示全部楼层 <
                  讨论一下啊


                  看了一下代码,其实如果只是本地的话,不需要去解决cors的问题。

                  @app.route('/')

                  然后把你的html作为静态页面输出就行了。这样就是同域了。

                  另外就是这个功能我感觉其实不需要用到flask,纯前端就能完成。

                  我随便找了个现成代码改了改差不多就是这样了

                  1. <html>
                  2. <head>
                  3.   <meta charset="utf-8">
                  4.   <title>保存文本文件到本地</title>
                  5. </head>
                  6. <body>
                  7.   <textarea id="json" value="qqq"></textarea>
                  8. <input id="filename" placeholder="文件名" />
                  9.   <button id="save">保存</button>
                  10. </body>
                  11. <script type="text/javascript">
                  12.     createAndDownloadFile=function(fileName, content) {
                  13.         const aTag = document.createElement('a');
                  14.         const blob = new Blob([content]);
                  15.         aTag.download = fileName;
                  16.         aTag.href = URL.createObjectURL(blob);
                  17.         aTag.click();
                  18.         URL.revokeObjectURL(aTag.href);
                  19.     }
                  20.     const save=document.querySelector("#save");
                  21.     save.addEventListener("click",function(){
                  22.         const filename = document.querySelector('#filename')?.value
                  23.         const content = document.querySelector('#json')?.value
                  24.         try {
                  25.            JSON.parse(content)
                  26.            createAndDownloadFile(filename ,content);
                  27.        } catch (e) {
                  28.           console.log(e)
                  29.        }
                  30.     });
                  31. </script>
                  32. </html>
                  复制代码




                  回复

                  使用道具 举报

                  20x43 隐形➀未散的宴席猎户座的明珠缘起星空虚空之海的鲸16x43 隐形➁弗雷迪玩偶发条八音盒16x43 隐形➀

                    Riverlethe 发表于 2024-4-25 02:06:56 | 显示全部楼层 <
                    回复

                    使用道具 举报

                    林中之蛋森林羊男红龙幼崽特殊-家园卫士Ⓛ特殊-家园卫士Ⓡ寻觅马戏团灰蛋

                      ngver 发表于 2024-4-25 02:41:25 | 显示全部楼层 <
                      回复

                      使用道具 举报

                      河豚寿司荧光水母男巫之歌缘起星空信仰之心不灭狂雷『不败之花』【新春限定】果体 隆红心玉情难自抑

                        Freeze123 发表于 2024-4-25 02:47:34 | 显示全部楼层 <
                        和用word打一段文字并保存的区别素?
                          收起(1)
                        回复

                        使用道具 举报

                        亚瑟‧摩根杰西·麦克雷索林·临终一役BIG BOSS希尔瓦娜斯·风行者岛田半藏岛田源氏

                          除却巫山不是云 发表于 2024-4-25 03:07:11 | 显示全部楼层 <
                          回复

                          使用道具 举报

                          金钱马车『逆境中的幸运女神』裸体克里斯【圣诞限定】心心念念小雪人【夏日限定】夏日的泰凯斯永远的克叔史莱姆牧场虚空之海的鲸男巫之歌诺曼底号

                            前方无怪 发表于 2024-4-25 03:41:03 | 显示全部楼层 <
                            回复

                            使用道具 举报

                            我的天使GM吸血伯爵吃饱金币的Doge苏格兰圆脸胖鸡小小舞台守卫: 坚守眼位永浴爱河肉垫手套御医神兔『搓粉团珠』

                              毛茸茸兽兽 发表于 2024-4-25 03:49:16 | 显示全部楼层 <
                              回复

                              使用道具 举报

                              河豚寿司荧光水母没有梦想的咸鱼诺曼底号『冰雕马拉橇』『流星赶月』信仰之心『不败之花』『伊黎丝的赞美词』不朽之恋

                                相见忧 发表于 2024-4-25 05:55:09 | 显示全部楼层 <
                                回复

                                使用道具 举报

                                男巫之歌缘起星空

                                  大臣 发表于 2024-4-25 07:07:10 | 显示全部楼层 <
                                  回复

                                  使用道具 举报

                                  缘起星空虚空之海的鲸

                                    you9632587 发表于 2024-4-25 07:42:45 | 显示全部楼层 <
                                    回复

                                    使用道具 举报

                                    极·龙の意【圣诞限定】心心念念小雪人阿怪变身器不灭狂雷『搓粉团珠』妙手空空泰比里厄斯永浴爱河

                                      山涧轶闻 发表于 2024-4-25 08:03:22 | 显示全部楼层 <
                                      回复

                                      使用道具 举报

                                      小小舞台『 弗霖的琴』至尊巴哈姆特業火死鬥男巫之歌泰比里厄斯【夏日限定】夏日的泰凯斯史莱姆牧场自定义男从Homunculus岛田源氏

                                        书の妖怪 发表于 2024-4-25 08:30:42 | 显示全部楼层 <
                                        相关内容更建议发布在CODE专区,已将帖子移动至对应版块,请楼主下次发帖前务必注意论坛规范,发布至对应版块
                                        回复

                                        使用道具 举报

                                        鎏彩万幢裸体克里斯圣甲虫秘典亚瑟‧摩根Forever Titanic月光骑士月光骑士史莱姆牧场王者之盾杰西·麦克雷

                                          ccczpoa 发表于 2024-4-25 08:44:48 | 显示全部楼层 <
                                          回复

                                          使用道具 举报

                                          您需要登录后才可以回帖 登录 | 立即注册

                                          本版积分规则

                                          关闭

                                          站长公告上一条 /1 下一条

                                          文字版|手机版|小黑屋|GameMale

                                          GMT+8, 2025-12-9 01:09 , Processed in 0.191194 second(s), 148 queries , Redis On.

                                          Copyright © 2013-2025 GameMale

                                          All Rights Reserved.

                                          快速回复 返回列表