def history(request): """ 用户个人界面,展示并管理各种记录 :param request: :return: """ user = User.check_user(request) if user == 'KeyError' or user == 'PasswordNotMatch': return flush_2_home() # 查询所需信息 images = History.objects.filter(user=user, is_deleted=False).order_by( "-upload_time") # 从数据库中取出所有的图片路径 return render(request, 'history.html', {'user': user, 'images': images})
def delete_all(request): """ 浅删除所有历史记录 :param request: :return: """ user = User.check_user(request) if user == 'KeyError' or user == 'PasswordNotMatch': return flush_2_home() histories = History.objects.filter(user=user) for item in histories: item.is_deleted = True item.deleted_time = datetime.now() item.save() return HttpResponseRedirect('/history/')
def delete_one(request): """ 浅删除一项历史记录 :param request: :return: """ user = User.check_user(request) if user == 'KeyError' or user == 'PasswordNotMatch': return flush_2_home() item_id = request.GET['id'] item = History.objects.filter(user=user, id=item_id) for i in item: i.is_deleted = True i.deleted_time = datetime.now() i.save() return HttpResponseRedirect('/history/')
def home(request): """ 主页。若已登录则显示上传页面,否则跳转到登录页面 :param request: :return: """ user = User.check_user(request) if user == 'KeyError' or user == 'PasswordNotMatch': return HttpResponseRedirect('/login/') if request.method == 'GET': return render(request, 'home.html', { 'user': user, }) else: try: images = request.FILES.getlist('img') except AttributeError: return render(request, 'home.html', { 'user': user, }) begin_time = time.time() results = [] for img in images: start_time = time.time() image_ = History( user=user, image=img, name=img.name, upload_time=datetime.now(), prediction=predict(img), spend_time=time.time() - start_time, ) image_.save() results.append(image_) end_time = time.time() return render( request, 'home.html', { 'predictions': results, 'spend_time': '%.2fs' % (end_time - begin_time) })