Files
Simple_Drawing/pages/views.py
2021-10-13 22:54:43 +08:00

134 lines
4.5 KiB
Python

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 plot":
a = len(PlottingLibrary.objects.filter(sort="Scatter plot"))
pages = tools.return_pages(a)
return_data = PlottingLibrary.objects.filter(sort="Scatter plot")[(page - 1) * 12:]
if len(return_data) >= 12:
return_data = return_data[:12]
elif sort == "Line chart":
a = len(PlottingLibrary.objects.filter(sort="Line chart"))
pages = tools.return_pages(a)
return_data = PlottingLibrary.objects.filter(sort="Line chart")[(page - 1) * 12:]
if len(return_data) >= 12:
return_data = return_data[:12]
elif sort == "Pie chart":
a = len(PlottingLibrary.objects.filter(sort="Pie chart"))
pages = tools.return_pages(a)
return_data = PlottingLibrary.objects.filter(sort="Pie chart")[(page - 1) * 12:]
if len(return_data) >= 12:
return_data = return_data[:12]
elif sort == "Histogram":
a = len(PlottingLibrary.objects.filter(sort="Histogram"))
pages = tools.return_pages(a)
return_data = PlottingLibrary.objects.filter(sort="Histogram")[(page - 1) * 12:]
if len(return_data) >= 12:
return_data = return_data[:12]
elif sort == "Heat map":
a = len(PlottingLibrary.objects.filter(sort="Heat map"))
pages = tools.return_pages(a)
return_data = PlottingLibrary.objects.filter(sort="Heat map")[(page - 1) * 12:]
if len(return_data) >= 12:
return_data = return_data[:12]
elif sort == "Dot plot":
a = len(PlottingLibrary.objects.filter(sort="Dot plot"))
pages = tools.return_pages(a)
return_data = PlottingLibrary.objects.filter(sort="Dot plot")[(page - 1) * 12:]
if len(return_data) >= 12:
return_data = return_data[:12]
elif sort == "Chord Diagram":
a = len(PlottingLibrary.objects.filter(sort="Chord Diagram"))
pages = tools.return_pages(a)
return_data = PlottingLibrary.objects.filter(sort="Chord Diagram")[(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)