import os import random import time from django.http import JsonResponse from django.shortcuts import render from pages.models import Message from chart.models import PlottingLibrary from chart import tools path = os.getcwd() # def tick(): # file_list = os.listdir(f"{path}/file_keep") # # for i in file_list: # try: # int(i) # except: # pass # # else: # os.system(f"rm -r {path}/file_keep/{i}") # # # scheduler = BackgroundScheduler() # scheduler.add_job(tick, 'interval', minutes=0.5) # scheduler.start() # 返回随机生成的头像 def icon_create(): icon_list = ["layui-icon-heart-fill", 'layui-icon-rate-half', 'layui-icon-rate', 'layui-icon-cellphone', 'layui-icon-snowflake', 'layui-icon-read', 'layui-icon-headset', 'layui-icon-release'] return random.choice(icon_list) # 返回前端时间 def time_f(): return time.strftime("%Y-%m-%d", time.localtime()) # 返回首页 def index(request): return render(request, './page/index.html') # 返回静态页面 def out_page(request, page_name): if "Dot_Plot.html" in page_name: return render(request, f'./chart/{page_name}') else: return render(request, f'./page/{page_name}', {"url": tools.url_}) # 处理留言信息 def message(request): message_text = request.GET.get("message", None) get_break = request.GET.get("get_break", None) if get_break == "1": return JsonResponse({'data': [{"icon": i.icon, 'data': i.data, 'time': i.time} for i in Message.objects.all()]}) if message_text is None or len(message_text) < 1: message_text = "You didn't make any comments and wasted dozens of K of traffic." db = Message(data=message_text, icon=icon_create(), time=time_f()) db.save() return JsonResponse({"data": message_text, 'icon': icon_create(), "time": time_f()}) # 返回首页信息 def sort_load(request): page = int(request.GET.get("page")) sort = request.GET.get("sort", "all") if sort == "all": a = len(PlottingLibrary.objects.all()) pages = tools.return_pages(a) return_data = PlottingLibrary.objects.all()[(page - 1) * 12:] if len(return_data) >= 12: return_data = return_data[:12] elif sort == "Scatter": a = len(PlottingLibrary.objects.filter(sort="scatter")) pages = tools.return_pages(a) return_data = PlottingLibrary.objects.filter(sort="scatter")[(page - 1) * 12:] if len(return_data) >= 12: return_data = return_data[:12] data = {"pages": pages, 'data': [{"name": i.name, "url": i.url, "show_chart": i.index_img} for i in return_data]} return JsonResponse(data)