美文网首页百人计划
python+Django(5)—回传至前端几种方式

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

作者: 小盼盼_1 | 来源:发表于2020-12-19 16:28 被阅读0次

    背景

    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使用 {{ }} 来获取数据,如<div>{{data}}</div>

    注: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)—回传至前端几种方式

        本文链接:https://www.haomeiwen.com/subject/hiiqnktx.html