Files
Simple_Drawing/pages/views.py
2021-09-07 23:12:03 +08:00

98 lines
2.7 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":
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)