django中的视图层

打印 上一主题 下一主题

主题 863|帖子 863|积分 2589

1.什么是视图层

简单来说,就是用来接收路由层传来的请求,从而做出相应的响应返回给浏览器
2.视图层的格式与参数说明

2.1基本格式
  1. from django.http import HttpResponse
  2. def page_2003(request):
  3.     html = '<h1>第一个网页</h1>'
  4.     return HttpResponse(html)
  5. # 注意需要在主路由文件中引入新创建的视图函数
复制代码
2.2带有转换器参数的视图函数
  1. def test(request, num):
  2.     html = '这是我的第%s个网页' % num
  3. return HttpResponse(html)
  4. # 添加转换器的视图函数,request后面的参数num为path转换器中的自定义名
复制代码
2.3带有正则表达式参数的视图函数

同带有转换器参数的视图函数
2.4重定向的视图函数
  1. from django.http import HttpResponse,HttpResponseRedirect
  2. def test_request(request):--注意path函数里也要绑定test_request这个路径
  3. return HttpResponseRedirect('page/2003/')--重定向到127.0.0.1:8000/page/2003这个页面去
复制代码
2.5判断请求方法的视图函数
  1. def test_get_post(request):
  2. if request.method == 'GET':
  3.     pass   
  4. elif request.method == 'POST':
  5.     pass
复制代码
2.6加载模板层的视图函数
  1. 使用render()直接加载并相应模板语法:
  2. ​from django.shortcuts import render
  3. ​def test_html(request):   
  4. ​ return render(request, '模板文件名', 字典数据)
  5. 注意视图层的所有变量可以用local()方法全部自动整合成字典传到render的最后一个参数里
复制代码
2.7返回JsonResponse对象的视图函数

json格式的数据的作用:
前后端数据交互需要用到json作为过渡,实现跨语言传输数据。
格式:
  1. from django.http import JsonResponse
  2. def ab_json(request):
  3.     user_dict={'username':'json,我好喜欢','password':'1243'}
  4. return JsonResponse(user_dict,json_dumps_params={'ensure_ascii':False})
  5. # 字典传入时需要设置json_dumps_params格式化字符串,不然字典里的中文会报错
  6.     list = [111,22,33,44]
  7. return JsonResponse(list,safe=False)
  8. # 列表传入序列化时需要设置safe为false ,不然会报错
复制代码
2.8视图层的FBV和CBV格式

视图函数既可以是函数(FBV)也可以是类(CBV)
  1. 1.FBV
  2. def index(request):
  3. return HttpResponse('index')
  4. 2.CBV
  5. # CBV路由
  6.     pathr'^login/',views.MyLogin.as_view())
  7. # CBV视图函数
  8. from django.views import View
  9. class MyLogin(View):
  10. def get(self,request):
  11. return render(request,'form.html')
  12. def post(self,request):
  13. return HttpResponse('post方法')
  14. """
  15. FBV和CBV各有千秋
  16. CBV特点
  17.   能够直接根据请求方式的不同直接匹配到对应的方法执行
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表