首页 > 其他分享 >Django实现文件上传、文件列表查看、修改、限流和日志记录6

Django实现文件上传、文件列表查看、修改、限流和日志记录6

时间:2023-08-13 17:33:20浏览次数:31  
标签:文件 查看 list 列表 限流 file Django 上传

Django实现文件上传、文件列表查看、修改、限流和日志记录6

对于已经上传的文件,现在已经实现了文件的查看修改,美中不足的是:需要查看每个文件需要提前记住文件名指定文件名进行查看和修改。为此,新增一个上传文件的列表功能,在通过模版按钮跳转路由到查看和修改页面。

实现逻辑

查看已上传的文件列表,并点击上传文件列表跳转到文件查看和修改页面的功能实现步骤:

  1. 在你的视图函数中,添加一个新的视图函数来处理文件列表展示的逻辑。可以命名为 file_list。
  2. 在该视图函数中,连接到远程服务器并获取已上传的文件列表。
  3. 将获取到的文件列表传递给模板进行展示。
  4. 创建一个新的模板文件 file_list.html,用于展示文件列表。
  5. 在模板文件中使用适当的 HTML 和 Django 模板语法来展示文件列表。

添加列表视图file_list

from django.urls import reverse
from django.shortcuts import render, redirect

@login_required
def file_list(request):
    # 秘钥连接
    private_key_path = '/git/Python/file_upload/sleepy_bear.pem'  # 替换为你的私钥文件路径
    private_key = paramiko.RSAKey(filename=private_key_path)
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('110.40.168.137', username='root', pkey=private_key)


    try:
        #获取远程服务器上的文件列表
        sftp = ssh.open_sftp()
        file_list = sftp.listdir('/data')  # 替换为你的文件存储路径
        sftp.close()
        ssh.close()

        # 确保 file_list_with_links 列表中的每个元素都是一个包含两个值的元组,其中第一个值是文件名,第二个值是查看文件的链接。
        file_list_with_links = []  # 存储带有链接的文件列表
        for file_name in file_list:
            # 生成查看文件的链接
            view_url = reverse('view_file', args=[file_name])
            view_link = '<a href="{}" class="btn btn-primary">查看文件</a>'.format(view_url)
            # 将文件名和查看文件的链接添加到列表中
            file_list_with_links.append((file_name, view_link))
        logging.info('用户 {} 在 {} 查看上传文件列表'.format(request.user.username, datetime.now()))
        return render(request, 'file_list.html', {'file_list': file_list_with_links})

        logging.info('用户 {} 在 {} 查看上传文件列表'.format(request.user.username, datetime.now()))
        # return render(request, 'file_list.html', {'file_list': file_list})
    except Exception as e:
        logging.error('用户 {} 在 {} 查看上传文件列表失败'.format(request.user.username, datetime.now()))
        messages.error(request, '获取文件列表失败:{}'.format(str(e)))

    return redirect('upload')  # 如果获取文件列表失败,重定向到上传页面

 

定义文件列表模板


●在文件列表中显示链接按钮的 HTML 格式,你可以在模板中使用 safe 过滤器来告诉 Django 不要转义 HTML 代码【否则显示text内容】。

 
{% for file_name, view_link in file_list %}
    <p>{{ file_name }}</p>
    <p>{{ view_link|safe }}</p>
{% empty %}
    <p>No files uploaded yet.</p>
{% endfor %}

查看文件列表及跳转

 
http://localhost:8000/file_list/
http://localhost:8000/view/admin-config/

 

 

至此,上传文件列表功能已添加,并将之前文件查看和修改视图相关联。

 

 

标签:文件,查看,list,列表,限流,file,Django,上传
From: https://www.cnblogs.com/weiweirui/p/17626864.html

相关文章

  • Python文件路径解谜:深入剖析os.path系列函数的精髓
    介绍在Python中,os.path模块提供了一系列用于处理文件路径和文件系统的函数。它是Python标准库中os模块的一部分。本文将深入探讨os.path系列函数的使用方法,从入门到精通。目录导入os.path模块获取文件路径信息os.path.abspath():获取绝对路径os.path.dirname():获取目录......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录4
    Django实现文件上传、文件列表查看、修改、限流和日志记录4本章添加用户认证功能,属于安全模块。用户认证在Django中,默认情况下,用户的用户名和密码是存储在数据库中的。Django提供了内置的用户模型(User模型),它可以管理用户的认证和授权。配置数据库在file_upload/settings.py......
  • Web通用漏洞--文件上传
    Web通用漏洞--文件上传概述文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数......
  • Web通用漏洞--文件包含
    Web通用漏洞--文件包含文件包含原理在项目开发过程中,开发人员通常会将重复使用的函数写入单个文件中,在使用该类函数时,直接调用文件即可,无需重新编写,这种调用文件的过程成为文件包含。在文件包含过程中,如果用户可以控制所包含的文件,则为文件包含漏洞。文件包含函数PHP:include、......
  • ctfshow--web入门--文件上传
    ctfshow--web入门--文件上传web151(前端校验)题目中提示前端检验不可靠,应该对前端检验进行绕过检查前端代码进行修改,使php文件可以通过前端校验,成功上传后进行命令执行,找到flagweb152(content-type)通过前端校验后上传php文件显示文件类型不合规尝试抓包修改content-type......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录2
    Django实现文件上传、文件列表查看、修改、限流和日志记录2本章节优化新增功能使用ssh秘钥连接远程服务器进行文件上传使用ssh私钥连接远程服务器上传文件使用SSH私钥连接远程服务器并上传文件,你可以使用paramiko库来实现SSH连接和文件传输的功能。首先,确保你已经生成了SSH......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录1
    Django实现文件上传、文件列表查看、修改、限流和日志记录1上一章已经实现了文件的上传到项目的指定目录中,这章我们继续乘胜追击继续优化实现。一般都是上传文件到后端服务器上,因此需要建立一个远程服务器的连接,本章连接远程服务器实现文件上传实现点击上传本地文件到远程服务......
  • pyspark写入文件
    ##py_spark_rdd2py.py#py_learn##CreatedbyZ.Steveon2023/8/1311:39.##1.rdd.collect()将rdd变为list#2.rdd.reduce()不分组,对rdd数据做两两聚合frompysparkimportSparkConf,SparkContextconf=SparkConf().setMaster("local[*]")......
  • 文件属性
    简介linux是多用户系统,不同用户处于不同地位修改文件/目录所属用户与权限 chown(changeowner):修改所属用户与组。chmod(changemode):修改用户的权限。查看文件/目录所属用户和组ll或者ls-l 第一个字母:当为d则是目录当为-则是文件;若是l则表示为链......
  • chfs共享文件系统
    chfs简介官网地址:http://iscute.cn/chfsCuteHttpFileServer/chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:单个文件,核心功能无需其他文件跨平台运行,支持主流平台:Windows,Linux和Mac界面简洁,简单易用支持扫码下载和手机端访问,手机与电脑之间......