更新
This commit is contained in:
47
Python-100-Days/Day41-55/oa/hrs/views.py
Normal file
47
Python-100-Days/Day41-55/oa/hrs/views.py
Normal file
@@ -0,0 +1,47 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user