• 第一阶段大作业 文件状态的查看


    课上老师提到了,要查看文件的状态,于是我新建了一个记录文件状态的表。

    新写了一个用于展示文件状态也页面。

    但是文件创建时间有些异常

    文件可以直接点击下载按钮,进行下载。

    可以点击生成表,来生成表,会自动判断是否已经生成,若已经生成则会给出提示。

    删除,则会将文件删除。

    layui.use(['element', 'layer', 'util'], function(){
            var element = layui.element
            ,layer = layui.layer
            ,util = layui.util
            ,$ = layui.$;
    
            //头部事件
            util.event('lay-header-event', {
            //左侧菜单事件
                menuLeft: function(othis){
                layer.msg('展开左侧菜单的操作', {icon: 0});
                }
                ,menuRight: function(){
                    layer.open({
                        type: 1
                        ,content: '<div style="padding: 15px;">处理右侧面板的操作</div>'
                        ,area: ['260px', '100%']
                        ,offset: 'rt' //右上角
                        ,anim: 5
                        ,shadeClose: true
                    });
                }
            });
        });
        var table = layui.table;
        table.on('tool(demo)', function(obj){
            var data = obj.data;
            if(obj.event === 'create'){
                //生成数据字典,创建表
                $.ajax({
                        type: "GET",
                        url: "/create_dictionary_file",
                        data: {file_name:data.file_name,file_type:data.file_type},
                        dataType: "json",
                        success: function(data){
                            if(data.flag==1){
                                alert("生成成功,请刷新页面")
                            }else if(data.flag==2){
                                alert("文件类型不支持")
                            }else if(data.flag==3){
                                alert("表已存在")
                            }else{
                                alert("生成失败")
                            }
                        }
                    });
            } else if(obj.event === 'del'){
                layer.confirm('真的删除行么', function(index){
                     $.ajax({
                        type: "GET",
                        url: "/delete_file",
                        data: {file_name:data.file_name,file_type:data.file_type},
                        dataType: "json",
                        success: function(data){
                            if(data.flag==1){
                                alert("删除成功,请刷新页面")
                            }else{
                                alert("删除失败")
                            }
                        }
                    });
                });
            } else if(obj.event === 'download'){
                url="http://127.0.0.1:5000/export?table_name="+data.file_name+"&database_name=000"
                window.open(url)
                // layer.alert('编辑行:<br>'+ JSON.stringify(data))
            }
        });
    #数据导出
    @app.route('/export')
    def export():
        # 获取表名与数据库名
        table_name = request.values.get("table_name")
        database_name = request.values.get("database_name")
        file_data=fileroot.find_filedata_filename(table_name)[0]
        print("文件下载:")
        if(file_data[2] == "csv" or file_data[2] == "txt"):
            print(file_data)
            return send_from_directory(r"score_table", filename=file_data[0]+"."+file_data[2], as_attachment=True)
        elif(file_data[2] == "xlsx" or file_data[2] == "xls"):
            print(file_data)
            return send_from_directory(r"excel_example", filename=file_data[0]+"."+file_data[2], as_attachment=True)
        elif(file_data[2] == "docx" or file_data[2] == "doc"):
            print(file_data)
            return send_from_directory(r"word_data", filename=file_data[0] + "." + file_data[2], as_attachment=True)
        else:
            print(file_data)
            return send_from_directory(r"test_data", filename=file_data[0] + "." + file_data[2], as_attachment=True)
    #文件删除
    @app.route('/delete_file')
    def delete_file():
        flag=0;
        file_name = request.values.get("file_name")
        file_type = request.values.get("file_type")
        #获取文件信息,以便获取要删除的文件地址
        #文件删除
        print("文件删除:")
        if (file_type == "csv" or file_type == "txt"):
            print(file_name+file_type)
            os.remove("excel_example/"+file_name+"."+file_type)
            # 文件状态删除
            flag = fileroot.delete_file(file_name)
        elif (file_type == "xlsx" or file_type == "xls"):
            print(file_name+file_type)
            os.remove("score_table/" + file_name+"."+file_type)
            # 文件状态删除
            flag = fileroot.delete_file(file_name)
        elif (file_type == "docx" or file_type == "doc"):
            print(file_name+file_type)
            os.remove("word_data/" + file_name+"."+file_type)
            # 文件状态删除
            flag = fileroot.delete_file(file_name)
        else:
            print(file_name+file_type)
            os.remove("test_data/" + file_name+"."+file_type)
            # 文件状态删除
            flag = fileroot.delete_file(file_name)
        return jsonify({"flag":flag})
    #根据文件生成数据字典
    @app.route("/create_dictionary_file")
    def create_dictionary_file():
        flag=0#falg=0表生成失败,flag=1表生成成功,flag=2文件类型不支持,flag=3表已生成
        file_name = request.values.get("file_name")
        file_type = request.values.get("file_type")
        file_data=fileroot.find_filedata_filename(file_name)[0]
        if(file_type=="csv" or file_type=="txt"):
            if(file_data[4]=="已导入数据库"):
                flag=3
            else:
                flag = connectsql.read_csv(file_name+"."+file_type)
                fileroot.file_update_state(file_name, "已导入数据库")
        elif(file_type=="xlsx" or file_type=="xls"):
            if(file_data[4]=="已导入数据库"):
                flag=3
            else:
                flag = connectsql.read_example(file_name+"."+file_type)
                fileroot.file_update_state(file_name, "已导入数据库")
        elif(file_type=="docx" or file_type=="doc"):
            flag=2
        else:
            flag=2
        return jsonify({"flag":flag})
  • 相关阅读:
    Easy-Transfer学习
    录音+语音转文字
    pyQt点击事件和数据传输
    第一个python-ui界面
    python写第一个网页
    pyhthon第一个小脚本——文件备份
    Stones HDU 1896
    Cow Sorting POJ 3270 & HDU 2838
    Stones
    大数相加
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15551025.html
Copyright © 2020-2023  润新知