python+Django(5)—回传至前端几种方式

背景

urls在django中为路由,view为视图。通过在urls定义路由,到view里去访问达到前后端交互的目的。本文来说明哈几种在view中用于回传至前端的格式及常用使用场景。

几种格式的对比及使用场景

前提条件:

urls文件中需配置好路由

from django.conf.urls import url

from .import views 

urlpatterns=[

url(

'home',

views.home,

name='home'

)]

render

使用场景:编写的html代码,直接渲染在网页上,不涉及复杂的数据处理时,可使用render

1.templates文件夹下创建home.html页面

2.views.py的定义对应的视图函数

from django.shortcuts import render

def home(request):

return render(request,'home.html')

访问127.0.0.1:8000/home可见home.html页面

若想简单修改哈前端html的部分字段,可调整代码如下:

from django.shortcuts import render

def home(request):

data = [1,2,3]                             // data数据类型包括列表/字典

return render(request,'home.html',{'data':data})

html使用 {{ }} 来获取数据,如

{{data}}

注:render是将整个html字符串返回并渲染成网页

httpresponse

使用场景:涉及到复杂的数据处理,需要对前端发送的Ajax请求处理后的后端数据回传至js的时候需使用httpresponse,但需要注意值要使用json.dumps()处理

views.py的定义对应的视图函数

from django.http import JsonResponse,HttpResponse

import json

def home(request):

data = {'name':'zhangsan','age':18}

return HttpResponse(json.dumps(data))

注:此时返回并不是标准格式的json,而是Content-Type:text/html;要想获得标准的json格式,需修改代码为returnHttpResponse(json.dumps(data),content_type="application/json")

jsonresponse

使用场景:是HttpResponse的子类,内部强制做了json转换

views.py的定义对应的视图函数

from django.http import JsonResponse,HttpResponse

def home(request):                                    

data = {'name':'zhangsan','age':18}

return JsonResponse(data)                //  返回Json的数据格式

你可能感兴趣的:(python+Django(5)—回传至前端几种方式)