From 90f989eea29a51f97c409aff72071cd3627deacc Mon Sep 17 00:00:00 2001 From: yangjian Date: Thu, 25 Jul 2019 22:17:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E8=A7=86=E5=9B=BE=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=88=A4=E6=96=AD=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_admin/views.py | 93 +++++--- app_doc/views.py | 409 +++++++++++++++++++-------------- template/app_doc/pro_list.html | 4 +- 3 files changed, 294 insertions(+), 212 deletions(-) diff --git a/app_admin/views.py b/app_admin/views.py index cddb7ac..a5134ca 100644 --- a/app_admin/views.py +++ b/app_admin/views.py @@ -13,7 +13,6 @@ from app_doc.models import * def check_code(request): import io from . import check_code as CheckCode - stream = io.BytesIO() # img图片对象,code在图像中写的内容 img, code = CheckCode.create_validate_code() @@ -22,31 +21,35 @@ def check_code(request): request.session["CheckCode"] = code return HttpResponse(stream.getvalue()) + # 登录视图 def log_in(request): if request.method == 'GET': if request.user.is_authenticated: - return redirect('/user/user_manage') + return redirect('/') else: return render(request,'login.html',locals()) elif request.method == 'POST': - username = request.POST.get('username','') - pwd = request.POST.get('password','') - if username != '' and pwd != '': - user = authenticate(username=username,password=pwd) - if user is not None: - if user.is_active: - login(request,user) - return redirect('/user/user_manage') + try: + username = request.POST.get('username','') + pwd = request.POST.get('password','') + if username != '' and pwd != '': + user = authenticate(username=username,password=pwd) + if user is not None: + if user.is_active: + login(request,user) + return redirect('/') + else: + errormsg = '用户被禁用!' + return render(request, 'login.html', locals()) else: - errormsg = '用户被禁用!' + errormsg = '用户名或密码错误!' return render(request, 'login.html', locals()) else: errormsg = '用户名或密码错误!' return render(request, 'login.html', locals()) - else: - errormsg = '用户名或密码错误!' - return render(request, 'login.html', locals()) + except Exception as e: + return HttpResponse('请求出错') # 注册视图 @@ -158,32 +161,41 @@ def admin_create_user(request): return JsonResponse({'status':False}) else: return JsonResponse({'status':False}) + else: + return HttpResponse('方法不允许') # 管理员后台 - 修改密码 @superuser_only def admin_change_pwd(request): if request.method == 'POST': - user_id = request.POST.get('user_id',None) - password = request.POST.get('password',None) - if user_id and password: - user = User.objects.get(id=int(user_id)) - user.set_password(password) - user_id.save() - return JsonResponse({'status':True,'data':'修改成功'}) - else: - return JsonResponse({'status':False,'data':'参数错误'}) + try: + user_id = request.POST.get('user_id',None) + password = request.POST.get('password',None) + if user_id and password: + user = User.objects.get(id=int(user_id)) + user.set_password(password) + user_id.save() + return JsonResponse({'status':True,'data':'修改成功'}) + else: + return JsonResponse({'status':False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求错误'}) else: return JsonResponse({'status':False,'data':'方法错误'}) + # 管理员后台 - 删除用户 @superuser_only def admin_del_user(request): if request.method == 'POST': - user_id = request.POST.get('user_id',None) - user = User.objects.get(id=int(user_id)) - user.delete() - return JsonResponse({'status':True,'data':'删除成功'}) + try: + user_id = request.POST.get('user_id',None) + user = User.objects.get(id=int(user_id)) + user.delete() + return JsonResponse({'status':True,'data':'删除成功'}) + except Exception as e: + return JsonResponse({'status':False,'data':'删除出错'}) else: return JsonResponse({'status':False,'data':'方法错误'}) @@ -214,6 +226,8 @@ def admin_project(request): except EmptyPage: projects = paginator.page(paginator.num_pages) return render(request,'app_admin/admin_project.html',locals()) + else: + return HttpResponse('方法错误') # 管理员后台 - 文档管理 @@ -276,14 +290,19 @@ def admin_doctemp(request): @login_required() def change_pwd(request): if request.method == 'POST': - password = request.POST.get('password',None) - if password: - if len(password) >= 6: - user = User.objects.get(id=request.user.id) - user.set_password(password) - user.save() - return JsonResponse({'status':True,'data':'修改成功'}) + try: + password = request.POST.get('password',None) + if password: + if len(password) >= 6: + user = User.objects.get(id=request.user.id) + user.set_password(password) + user.save() + return JsonResponse({'status':True,'data':'修改成功'}) + else: + return JsonResponse({'status':False,'data':'密码不得少于6位数'}) else: - return JsonResponse({'status':False,'data':'密码不得少于6位数'}) - else: - return JsonResponse({'status':False,'data':'参数错误'}) + return JsonResponse({'status':False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'修改出错'}) + else: + return HttpResponse('方法错误') diff --git a/app_doc/views.py b/app_doc/views.py index 419894c..f455baf 100644 --- a/app_doc/views.py +++ b/app_doc/views.py @@ -16,17 +16,20 @@ def project_list(request): @login_required() def create_project(request): if request.method == 'POST': - name = request.POST.get('pname','') - desc = request.POST.get('desc','') - if name != '': - project = Project.objects.create( - name=name, - intro=desc, - create_user=request.user - ) - project.save() - return JsonResponse({'status':True,'data':{'id':project.id,'name':project.name}}) - else: + try: + name = request.POST.get('pname','') + desc = request.POST.get('desc','') + if name != '': + project = Project.objects.create( + name=name, + intro=desc, + create_user=request.user + ) + project.save() + return JsonResponse({'status':True,'data':{'id':project.id,'name':project.name}}) + else: + return JsonResponse({'status':False}) + except Exception as e: return JsonResponse({'status':False}) else: return JsonResponse({'status':False}) @@ -36,45 +39,47 @@ def create_project(request): def project_index(request,pro_id): # 获取文集 if request.method == 'GET': - # 获取文集信息 - project = Project.objects.get(id=int(pro_id)) - # 获取搜索词 - kw = request.GET.get('kw','') - if kw == '': - doc = Doc.objects.filter(top_doc=int(pro_id)).order_by('id') - # 获取文集第一篇文档作为默认内容 - if doc.count() > 0: - doc = doc[0] - else: - doc = None - else: # 搜索结果 - search_result = Doc.objects.filter(top_doc=int(pro_id),pre_content__icontains=kw) - # 获取文集下所有一级文档 - project_docs = Doc.objects.filter(top_doc=int(pro_id), parent_doc=0) - return render(request,'app_doc/project.html',locals()) - # 更新文集 - elif request.method == 'PUT': - pass - # 删除文集 - elif request.method == 'DELETE': - pass + try: + # 获取文集信息 + project = Project.objects.get(id=int(pro_id)) + # 获取搜索词 + kw = request.GET.get('kw','') + if kw == '': + doc = Doc.objects.filter(top_doc=int(pro_id)).order_by('id') + # 获取文集第一篇文档作为默认内容 + if doc.count() > 0: + doc = doc[0] + else: + doc = None + else: # 搜索结果 + search_result = Doc.objects.filter(top_doc=int(pro_id),pre_content__icontains=kw) + # 获取文集下所有一级文档 + project_docs = Doc.objects.filter(top_doc=int(pro_id), parent_doc=0) + return render(request,'app_doc/project.html',locals()) + except Exception as e: + return HttpResponse('请求出错') + else: + return HttpResponse('方法不允许') # 修改文集 @login_required() def modify_project(request): if request.method == 'POST': - pro_id = request.POST.get('pro_id',None) - project = Project.objects.get(id=pro_id) - if request.user == project.create_user: - name = request.POST.get('name',None) - content = request.POST.get('desc',None) - project.name = name - project.intro = content - project.save() - return JsonResponse({'status':True,'data':'修改成功'}) - else: - return JsonResponse({'status':False,'data':'非法请求'}) + try: + pro_id = request.POST.get('pro_id',None) + project = Project.objects.get(id=pro_id) + if request.user == project.create_user: + name = request.POST.get('name',None) + content = request.POST.get('desc',None) + project.name = name + project.intro = content + project.save() + return JsonResponse({'status':True,'data':'修改成功'}) + else: + return JsonResponse({'status':False,'data':'非法请求'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) else: return JsonResponse({'status':False,'data':'方法不允许'}) @@ -82,118 +87,149 @@ def modify_project(request): # 删除文集 @login_required() def del_project(request): - pro_id = request.POST.get('pro_id','') - if pro_id != '': - pro = Project.objects.get(id=pro_id) - if request.user == pro.create_user: - pro.delete() - return JsonResponse({'status':True}) + try: + pro_id = request.POST.get('pro_id','') + if pro_id != '': + pro = Project.objects.get(id=pro_id) + if request.user == pro.create_user: + pro.delete() + return JsonResponse({'status':True}) + else: + return JsonResponse({'status':False,'data':'非法请求'}) else: - return JsonResponse({'status':False,'data':'非法请求'}) - else: - return JsonResponse({'status':False,'data':'参数错误'}) + return JsonResponse({'status':False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) # 管理文集 @login_required() def manage_project(request): if request.method == 'GET': - search_kw = request.GET.get('kw', None) - if search_kw: - pro_list = Project.objects.filter(create_user=request.user,intro__icontains=search_kw) - else: - pro_list = Project.objects.filter(create_user=request.user) - return render(request,'app_doc/manage_project.html',locals()) + try: + search_kw = request.GET.get('kw', None) + if search_kw: + pro_list = Project.objects.filter(create_user=request.user,intro__icontains=search_kw) + else: + pro_list = Project.objects.filter(create_user=request.user) + return render(request,'app_doc/manage_project.html',locals()) + except Exception as e: + return HttpResponse('请求出错') + else: + return HttpResponse('方法不允许') # 文档浏览页页 def doc(request,pro_id,doc_id): if request.method == 'GET': - if pro_id != '' and doc_id != '': - # 获取文集信息 - project = Project.objects.get(id=int(pro_id)) - # 获取文档内容 - doc = Doc.objects.get(id=int(doc_id)) - # 获取文集下一级文档 - project_docs = Doc.objects.filter(top_doc=doc.top_doc, parent_doc=0) - return render(request,'app_doc/project.html',locals()) + try: + if pro_id != '' and doc_id != '': + # 获取文集信息 + project = Project.objects.get(id=int(pro_id)) + # 获取文档内容 + doc = Doc.objects.get(id=int(doc_id)) + # 获取文集下一级文档 + project_docs = Doc.objects.filter(top_doc=doc.top_doc, parent_doc=0) + return render(request,'app_doc/project.html',locals()) + else: + return HttpResponse('参数错误') + except Exception as e: + return HttpResponse('请求出错') else: - pass + return HttpResponse('方法不允许') # 创建文档 @login_required() def create_doc(request): if request.method == 'GET': - # doc_list = Doc.objects.filter(create_user=request.user) - project_list = Project.objects.filter(create_user=request.user) - doctemp_list = DocTemp.objects.filter(create_user=request.user).values('id','name','create_time') - return render(request,'app_doc/create_doc.html',locals()) + try: + # doc_list = Doc.objects.filter(create_user=request.user) + project_list = Project.objects.filter(create_user=request.user) + doctemp_list = DocTemp.objects.filter(create_user=request.user).values('id','name','create_time') + return render(request,'app_doc/create_doc.html',locals()) + except Exception as e: + return HttpResponse('请求出错') elif request.method == 'POST': - project = request.POST.get('project','') - parent_doc = request.POST.get('parent_doc','') - doc_name = request.POST.get('doc_name','') - doc_content = request.POST.get('content','') - pre_content = request.POST.get('pre_content','') - if project != '' and doc_name != '' and project != '-1': - doc = Doc.objects.create( - name=doc_name, - content = doc_content, - pre_content= pre_content, - parent_doc= int(parent_doc) if parent_doc != '' else 0, - top_doc= int(project), - create_user=request.user - ) - return JsonResponse({'status':True}) - else: - return JsonResponse({'status':False}) + try: + project = request.POST.get('project','') + parent_doc = request.POST.get('parent_doc','') + doc_name = request.POST.get('doc_name','') + doc_content = request.POST.get('content','') + pre_content = request.POST.get('pre_content','') + if project != '' and doc_name != '' and project != '-1': + doc = Doc.objects.create( + name=doc_name, + content = doc_content, + pre_content= pre_content, + parent_doc= int(parent_doc) if parent_doc != '' else 0, + top_doc= int(project), + create_user=request.user + ) + return JsonResponse({'status':True,'data':'创建成功'}) + else: + return JsonResponse({'status':False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) + else: + return JsonResponse({'status':False,'data':'方法不允许'}) # 修改文档 @login_required() def modify_doc(request,doc_id): if request.method == 'GET': - doc = Doc.objects.get(id=doc_id) - if request.user == doc.create_user: - project = Project.objects.get(id=doc.top_doc) - doc_list = Doc.objects.filter(top_doc=project.id) - doctemp_list = DocTemp.objects.filter(create_user=request.user) - return render(request,'app_doc/modify_doc.html',locals()) - else: - return HttpResponse("非法请求") + try: + doc = Doc.objects.get(id=doc_id) + if request.user == doc.create_user: + project = Project.objects.get(id=doc.top_doc) + doc_list = Doc.objects.filter(top_doc=project.id) + doctemp_list = DocTemp.objects.filter(create_user=request.user) + return render(request,'app_doc/modify_doc.html',locals()) + else: + return HttpResponse("非法请求") + except Exception as e: + return HttpResponse('请求出错') elif request.method == 'POST': - doc_id = request.POST.get('doc_id','') # 文档ID - project = request.POST.get('project', '') # 文集ID - parent_doc = request.POST.get('parent_doc', '') # 上级文档ID - doc_name = request.POST.get('doc_name', '') # 文档名称 - doc_content = request.POST.get('content', '') # 文档内容 - pre_content = request.POST.get('pre_content', '') # 文档Markdown格式内容 - if doc_id != '' and project != '' and doc_name != '' and project != '-1': - # 更新文档内容 - Doc.objects.filter(id=int(doc_id)).update( - name=doc_name, - content=doc_content, - pre_content=pre_content, - parent_doc=int(parent_doc) if parent_doc != '' else 0, - ) - return JsonResponse({'status': True}) - else: - return JsonResponse({'status': False}) + try: + doc_id = request.POST.get('doc_id','') # 文档ID + project = request.POST.get('project', '') # 文集ID + parent_doc = request.POST.get('parent_doc', '') # 上级文档ID + doc_name = request.POST.get('doc_name', '') # 文档名称 + doc_content = request.POST.get('content', '') # 文档内容 + pre_content = request.POST.get('pre_content', '') # 文档Markdown格式内容 + if doc_id != '' and project != '' and doc_name != '' and project != '-1': + # 更新文档内容 + Doc.objects.filter(id=int(doc_id)).update( + name=doc_name, + content=doc_content, + pre_content=pre_content, + parent_doc=int(parent_doc) if parent_doc != '' else 0, + ) + return JsonResponse({'status': True,'data':'修改成功'}) + else: + return JsonResponse({'status': False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) # 删除文档 @login_required() def del_doc(request): - doc_id = request.POST.get('doc_id',None) - if doc_id: - doc = Doc.objects.get(id=doc_id) - if request.user == doc.create_user: - doc.delete() - return JsonResponse({'status': True, 'data': '删除完成'}) + try: + doc_id = request.POST.get('doc_id',None) + if doc_id: + doc = Doc.objects.get(id=doc_id) + if request.user == doc.create_user: + doc.delete() + return JsonResponse({'status': True, 'data': '删除完成'}) + else: + return JsonResponse({'status': False, 'data': '非法请求'}) else: - return JsonResponse({'status': False, 'data': '非法请求'}) - else: - return JsonResponse({'status':False,'data':'参数错误'}) + return JsonResponse({'status':False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) + # 管理文档 @login_required() @@ -205,6 +241,9 @@ def manage_doc(request): else: doc_list = Doc.objects.filter(create_user=request.user) return render(request,'app_doc/manage_doc.html',locals()) + else: + return HttpResponse('方法不允许') + # 创建文档模板 @login_required() @@ -212,83 +251,107 @@ def create_doctemp(request): if request.method == 'GET': return render(request,'app_doc/create_doctemp.html',locals()) elif request.method == 'POST': - name = request.POST.get('name','') - content = request.POST.get('content','') - if name != '': - doctemp = DocTemp.objects.create( - name = name, - content = content, - create_user=request.user - ) - doctemp.save() - return JsonResponse({'status':True}) - else: - return JsonResponse({'status':False,'data':'模板标题不能为空'}) + try: + name = request.POST.get('name','') + content = request.POST.get('content','') + if name != '': + doctemp = DocTemp.objects.create( + name = name, + content = content, + create_user=request.user + ) + doctemp.save() + return JsonResponse({'status':True,'data':'创建成功'}) + else: + return JsonResponse({'status':False,'data':'模板标题不能为空'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) + else: + return JsonResponse({'status':False,'data':'方法不允许'}) # 修改文档模板 @login_required() def modify_doctemp(request,doctemp_id): if request.method == 'GET': - doctemp = DocTemp.objects.get(id=doctemp_id) - if request.user.id == doctemp.create_user.id: - return render(request,'app_doc/modify_doctemp.html',locals()) - else: - return HttpResponse('非法请求') - elif request.method == 'POST': - doctemp_id = request.POST.get('doctemp_id','') - name = request.POST.get('name','') - content = request.POST.get('content','') - if doctemp_id != '' and name !='': + try: doctemp = DocTemp.objects.get(id=doctemp_id) if request.user.id == doctemp.create_user.id: - doctemp.name = name - doctemp.content = content - doctemp.save() - return JsonResponse({'status':True,'data':'修改成功'}) + return render(request,'app_doc/modify_doctemp.html',locals()) else: - return JsonResponse({'status':False,'data':'非法操作'}) - else: - return JsonResponse({'status':False,'data':'参数错误'}) + return HttpResponse('非法请求') + except Exception as e: + return HttpResponse('请求出错') + elif request.method == 'POST': + try: + doctemp_id = request.POST.get('doctemp_id','') + name = request.POST.get('name','') + content = request.POST.get('content','') + if doctemp_id != '' and name !='': + doctemp = DocTemp.objects.get(id=doctemp_id) + if request.user.id == doctemp.create_user.id: + doctemp.name = name + doctemp.content = content + doctemp.save() + return JsonResponse({'status':True,'data':'修改成功'}) + else: + return JsonResponse({'status':False,'data':'非法操作'}) + else: + return JsonResponse({'status':False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) + else: + return HttpResponse('方法不允许') # 删除文档模板 @login_required() def del_doctemp(request): - doctemp_id = request.POST.get('doctemp_id','') - if doctemp_id != '': - doctemp = DocTemp.objects.get(id=doctemp_id) - if request.user.id == doctemp.create_user.id: - doctemp.delete() - return JsonResponse({'status':True,'data':'删除完成'}) + try: + doctemp_id = request.POST.get('doctemp_id','') + if doctemp_id != '': + doctemp = DocTemp.objects.get(id=doctemp_id) + if request.user.id == doctemp.create_user.id: + doctemp.delete() + return JsonResponse({'status':True,'data':'删除完成'}) + else: + return JsonResponse({'status':False,'data':'非法请求'}) else: - return JsonResponse({'status':False,'data':'非法请求'}) - else: - return JsonResponse({'status': False, 'data': '参数错误'}) + return JsonResponse({'status': False, 'data': '参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) # 管理文档模板 @login_required() def manage_doctemp(request): if request.method == 'GET': - search_kw = request.GET.get('kw', None) - if search_kw: - doctemp_list = DocTemp.objects.filter(create_user=request.user,content__icontains=search_kw) - else: - doctemp_list = DocTemp.objects.filter(create_user=request.user) - return render(request, 'app_doc/manage_doctemp.html', locals()) + try: + search_kw = request.GET.get('kw', None) + if search_kw: + doctemp_list = DocTemp.objects.filter(create_user=request.user,content__icontains=search_kw) + else: + doctemp_list = DocTemp.objects.filter(create_user=request.user) + return render(request, 'app_doc/manage_doctemp.html', locals()) + except Exception as e: + return HttpResponse('请求出错') + else: + return HttpResponse('方法不允许') # 获取指定文档模板 @login_required() def get_doctemp(request): if request.method == 'POST': - doctemp_id = request.POST.get('doctemp_id','') - if doctemp_id != '': - content = DocTemp.objects.get(id=int(doctemp_id)).serializable_value('content') - return JsonResponse({'status':True,'data':content}) - else: - return JsonResponse({'status':False,'data':'参数错误'}) + try: + doctemp_id = request.POST.get('doctemp_id','') + if doctemp_id != '': + content = DocTemp.objects.get(id=int(doctemp_id)).serializable_value('content') + return JsonResponse({'status':True,'data':content}) + else: + return JsonResponse({'status':False,'data':'参数错误'}) + except Exception as e: + return JsonResponse({'status':False,'data':'请求出错'}) else: return JsonResponse({'status':False,'data':'方法错误'}) diff --git a/template/app_doc/pro_list.html b/template/app_doc/pro_list.html index b1e8f8b..6ab110d 100644 --- a/template/app_doc/pro_list.html +++ b/template/app_doc/pro_list.html @@ -3,7 +3,7 @@ - MrDoc + MrDoc - 一个简单的文档写作系统 @@ -55,7 +55,7 @@
-
{{ p.name }} +
{{ p.name }}

作者:{{p.create_user}}