Django实现文件上传、文件列表查看、修改、限流和日志记录6
对于已经上传的文件,现在已经实现了文件的查看修改,美中不足的是:需要查看每个文件需要提前记住文件名指定文件名进行查看和修改。为此,新增一个上传文件的列表功能,在通过模版按钮跳转路由到查看和修改页面。
实现逻辑
查看已上传的文件列表,并点击上传文件列表跳转到文件查看和修改页面的功能实现步骤:
- 在你的视图函数中,添加一个新的视图函数来处理文件列表展示的逻辑。可以命名为 file_list。
- 在该视图函数中,连接到远程服务器并获取已上传的文件列表。
- 将获取到的文件列表传递给模板进行展示。
- 创建一个新的模板文件 file_list.html,用于展示文件列表。
- 在模板文件中使用适当的 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