| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- # coding=utf-8
- import re
- import os
- import json
- import uuid
- import random
- from importlib import import_module
- from django import http
- from django.contrib import auth
- from django.core.cache import cache
- from django.shortcuts import render
- from django.conf import settings
- from common import core_views as cv
- import common.models as cm
- class DocView(cv.BaseView):
- def get(self,request):
- """
- """
- modules = list(cm.OperationLogConfig.objects.order_by("order").values())
- apis = []
- for mo in modules:
- docstr = None
- op_url = mo["op_url"]
- response = mo["op_response"]
- try:
- cls = mo["op_view"].split(".")[-1]
- mod = import_module(".".join(mo["op_view"].split(".")[:-1]))
- cls = getattr(mod,cls)
- op_action_flag = mo["op_action_flag"]
- if op_action_flag == "GET":
- docstr = cls.get.__doc__
- if op_action_flag == "POST":
- docstr = cls.post.__doc__
- if op_action_flag == "PUT":
- docstr = cls.put.__doc__
- if op_action_flag == "DELETE":
- docstr = cls.delete.__doc__
- if docstr:
- title = "".join(re.findall(r'#.*',docstr)).lstrip("#")
- params = "\n".join([x.lstrip("@") for x in re.findall(r'@.*',docstr)]).strip()
- request_note = "<br>".join([x.lstrip("<") for x in re.findall(r'<.*',docstr)]).strip()
- response_note = "<br>".join([x.lstrip(">") for x in re.findall(r'>.*',docstr)]).strip()
- apis.append({"id":mo["id"],"url":op_url,"title":title,"method":op_action_flag,
- "params":params,"response":response,"response_note":response_note
- })
- except Exception as e:
- cv.tracefail()
- continue
- isroot = request.GET.get("root",0)
- if request.GET.get("json"):
- return cv.to_suc(apis)
- return render(request,"apidoc.html",{"apis":apis,"isroot":isroot,"project_name":settings.PROJECT_NAME})
- def post(self,request):
- """
- """
- qdata = request.json
- ids = qdata.get("ids")
- for dct in ids:
- id = dct["id"]
- order = dct["order"]
- cm.OperationLogConfig.objects.filter(id=id).update(order=order)
- return cv.to_suc()
- def delete(self,request):
- """
- """
- qdata = request.json
- id = qdata.get("id")
- cm.OperationLogConfig.objects.filter(id=id).delete()
- return cv.to_suc()
- class HookView(cv.BaseView):
- def post(self,request):
- """
- """
- cmdstr = "cd /mnt/gzyunweb/pc/gzyun_web & git pull origin master & cnpm run build"
- os.system(cmdstr)
- return cv.to_suc()
- class CanvasView(cv.BaseView):
- def get(self,request):
- """
- """
- ret = {}
- paper = {
- "title":u"第一课、空间几何体",
- "paperno":u"XZBRJB10001",
- "paperimgs":["/static/test1.jpg","/static/test1.jpg"]
- }
- ret["paper"] = paper
- return render(request,"canvas.html",ret)
|