views.py 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import random
  2. import string
  3. from django.http import HttpResponse
  4. from django.shortcuts import render
  5. from django.contrib.auth.decorators import login_required
  6. from .models import Folder
  7. from file.models import File
  8. from django.contrib.auth.models import User
  9. import json
  10. # Create your views here.
  11. DEBUG = 1
  12. @login_required(login_url='/account/login/')
  13. def get_first_folder(request):
  14. if request.method == 'POST':
  15. # 获取所有根文件夹id
  16. folders = Folder.objects.filter(father_folder=None)
  17. response = []
  18. for i in folders:
  19. response.append([i.folder_name, i.folder_id])
  20. return HttpResponse(json.dumps(response), status=200)
  21. elif request.method == 'GET':
  22. if DEBUG:
  23. return render(request, 'folder_list.html')
  24. else:
  25. return HttpResponse(status=400)
  26. # 在根目录下列出所有文件夹与文件
  27. @login_required(login_url='/account/login/')
  28. def folder_list(request):
  29. if request.method == 'POST':
  30. data = request.POST
  31. # 获取所有文件夹
  32. folders = Folder.objects.filter(father_folder__folder_id=data['folder_id'])
  33. files = File.objects.filter(folder__folder_id=data['folder_id'])
  34. response = []
  35. for i in folders:
  36. response.append(['folders', i.folder_name, i.folder_id])
  37. for i in files:
  38. response.append(['files', i.file_name, i.file_id, i.file_path, i.file_id, i.update_time, i.file_type, i.file_size])
  39. return HttpResponse(json.dumps(response), status=200)
  40. elif request.method == 'GET':
  41. if DEBUG:
  42. return render(request, 'folder_list.html')
  43. else:
  44. return HttpResponse(status=400)
  45. # 父文件夹id 子文件夹名字
  46. # 增文件夹
  47. @login_required(login_url='/account/login/')
  48. def add_folder(request):
  49. if request.method == 'POST':
  50. data = request.POST
  51. folder_id_random = ''.join(random.sample(string.digits, 8))
  52. father_folder = Folder.objects.filter(folder_id=data['father_folder_id']).get()
  53. print(data)
  54. if not father_folder:
  55. # 查无此文件夹
  56. return HttpResponse(status=421)
  57. else:
  58. if 'folder_name' in data:
  59. print('yes')
  60. Folder.objects.create(folder_id=folder_id_random,
  61. folder_name=data.get("folder_name"),
  62. father_folder=father_folder)
  63. return HttpResponse(status=200)
  64. elif request.method == 'GET':
  65. if DEBUG:
  66. return render(request, 'add_folder.html')
  67. else:
  68. return HttpResponse(status=400)
  69. # 删除文件夹
  70. @login_required(login_url='/account/login/')
  71. def delete_folder(request):
  72. if request.method == 'POST':
  73. data = request.POST
  74. folder = Folder.objects.filter(folder_id=data['folder_id']).get()
  75. if not folder:
  76. # 查无此文件夹
  77. return HttpResponse(status=421)
  78. else:
  79. folder.delete()
  80. return HttpResponse(status=200)
  81. elif request.method == 'GET':
  82. if DEBUG:
  83. return render(request, 'delete_folder.html')
  84. else:
  85. return HttpResponse(status=400)