| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- from django.http import HttpResponse
- from django.shortcuts import render, redirect
- from django.db.models import ObjectDoesNotExist
- from json import dumps
- from hrs.models import Dept, Emp
- def index(request):
- ctx = {
- 'greeting': '你好,世界!'
- }
- return render(request, 'index.html', context=ctx)
- def del_dept(request, no='0'):
- try:
- Dept.objects.get(pk=no).delete()
- ctx = {'code': 200}
- except (ObjectDoesNotExist, ValueError):
- ctx = {'code': 404}
- return HttpResponse(
- dumps(ctx), content_type='application/json; charset=utf-8')
- # 重定向 - 给浏览器一个URL, 让浏览器重新请求指定的页面
- # return redirect(reverse('depts'))
- # return depts(request)
- def emps(request, no='0'):
- # no = request.GET['no']
- # dept = Dept.objects.get(no=no)
- # ForeignKey(Dept, on_delete=models.PROTECT, related_name='emps')
- # dept.emps.all()
- # emps_list = dept.emp_set.all()
- # all() / filter() ==> QuerySet
- # QuerySet使用了惰性查询 - 如果不是非得取到数据那么不会发出SQL语句
- # 这样做是为了节省服务器内存的开销 - 延迟加载 - 节省空间势必浪费时间
- emps_list = list(Emp.objects.filter(dept__no=no).select_related('dept'))
- ctx = {'emp_list': emps_list, 'dept_name': emps_list[0].dept.name} \
- if len(emps_list) > 0 else {}
- return render(request, 'emp.html', context=ctx)
- def depts(request):
- ctx = {'dept_list': Dept.objects.all()}
- return render(request, 'dept.html', context=ctx)
|