- 母版
母版就是将基本的网页写好,封装成一个母版,后续结构大致相同的网页就可以节省代码继承使用(了解即可,不好用) - 组件
组件是将导航栏和页脚等封装成一个组件,后续网页可以方便使用(了解即可,不好用) - 静态文件目录写法
(了解即可,根本不会去修改) - CBV(class base view)和FBV(function base view)
def add_class(request):
if request.method == "POST":
class_name = request.POST.get("class_name")
models.Classes.objects.create(name=class_name)
return redirect("/class_list/")
return render(request, "add_class.html")
from django.views import View
class AddClass(View):
def get(self, request):
return render(request, "add_class.html")
def post(self, request):
class_name = request.POST.get("class_name")
models.Classes.objects.create(name=class_name)
return redirect("/class_list/")
url(r'^add_class/$', views.AddClass.as_view()),
- request对象和上传文件实例
request.path_info 返回用户访问的url,不包含域名和后面的参数
request.method 获取请求的方法(GET、POST等)
request.GET get方法获取到的数据,一般是一个字典
request.POST post方法获取到的数据
request.FILES 获取传过来的文件,使用request.FILES.get("key").name
上传文件实例
def upload(request):
"""
保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。
从内存读取一次,写磁盘一次。但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
:param request:
:return:
"""
if request.method == "POST":
filename = request.FILES["file"].name
with open(filename, "wb") as f:
for chunk in request.FILES["file"].chunks():
f.write(chunk)
return HttpResponse("上传OK")
- Jsonresponse
当需要后端把数据回吐给前端网页时,用Jsonresponse生成jason编码的响应
from django.http import Jsonresponse
在view文件中的函数体里
return Jsonresponse(data)