网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

django中的视图层

1.什么是视图层

简单来说,就是用来接收路由层传来的请求,从而做出相应的响应返回给浏览器

超过十载行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:成都网站设计、成都做网站,成都网站推广,成都网站优化,整体网络托管,微信小程序定制开发,微信开发,APP应用开发,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!

2.视图层的格式与参数说明

2.1基本格式

from django.http import HttpResponse
def page_2003(request):
    html = '

第一个网页

' return HttpResponse(html) # 注意需要在主路由文件中引入新创建的视图函数

2.2带有转换器参数的视图函数

def test(request, num):
    html = '这是我的第%s个网页' % num
return HttpResponse(html)
# 添加转换器的视图函数,request后面的参数num为path转换器中的自定义名

2.3带有正则表达式参数的视图函数

同带有转换器参数的视图函数

2.4重定向的视图函数

from django.http import HttpResponse,HttpResponseRedirect
def test_request(request):--注意path函数里也要绑定test_request这个路径
return HttpResponseRedirect('page/2003/')--重定向到127.0.0.1:8000/page/2003这个页面去

2.5判断请求方法的视图函数

def test_get_post(request):
if request.method == 'GET':
    pass   
elif request.method == 'POST':
    pass

2.6加载模板层的视图函数

使用render()直接加载并相应模板语法:
​from django.shortcuts import render
​def test_html(request):   
​ return render(request, '模板文件名', 字典数据)
注意视图层的所有变量可以用local()方法全部自动整合成字典传到render的最后一个参数里

2.7返回JsonResponse对象的视图函数

json格式的数据的作用:

前后端数据交互需要用到json作为过渡,实现跨语言传输数据。

格式:

from django.http import JsonResponse
def ab_json(request):
    user_dict={'username':'json,我好喜欢','password':'1243'}
return JsonResponse(user_dict,json_dumps_params={'ensure_ascii':False})
# 字典传入时需要设置json_dumps_params格式化字符串,不然字典里的中文会报错
    list = [111,22,33,44]
return JsonResponse(list,safe=False)
# 列表传入序列化时需要设置safe为false ,不然会报错

2.8视图层的FBV和CBV格式

视图函数既可以是函数(FBV)也可以是类(CBV)

1.FBV
def index(request):
return HttpResponse('index')

2.CBV
# CBV路由
    pathr'^login/',views.MyLogin.as_view())
# CBV视图函数
from django.views import View
class MyLogin(View):
def get(self,request):
return render(request,'form.html')
def post(self,request):
return HttpResponse('post方法')
"""
FBV和CBV各有千秋
CBV特点
  能够直接根据请求方式的不同直接匹配到对应的方法执行

文章题目:django中的视图层
转载源于:http://bjjierui.cn/article/dsogech.html

其他资讯