zoukankan      html  css  js  c++  java
  • Django学习之视图层

    视图层

    小白必会三板斧

    1. HttpResponse
    2. render
    3. redirect

    django视图函数必须要给返回一个HttpResponse对象(render和redirect内部返回的也是一个HttpResponse对象

    前后端分离

    在前后端分离的情况下,为了保证数据的交互,我们选择JSON格式来传输数据。

    前端一个人干(前端转成自定义对象)

    JSON.stringify() ——————> json.dumps()
    
    
    JSON.parse()  ———————> json.loads()

    后端另一个干(python后端用字典)
    只要涉及到数据交互,一般情况下都是用的json格式
    后端只负责产生接口,前端调用该接口能拿到一个大字典
    后端只需要写一个接口文档 里面描述字典的详细信息以及参数的传递

    JsonReponse

     
    from django.http import JsonResponse
    def index(request):
        data = {'name':'jason好帅哦 我好喜欢','password':123}
        l = [1,2,3,4,5,6,7,8]
           # res = json.dumps(data,ensure_ascii=False)
           # return HttpResponse(res)
           # return JsonResponse(data,json_dumps_params={'ensure_ascii':False})
               # ensure_ascii的作用是可以让中文不被转译成ascii码
            return JsonResponse(l,safe=False)  # 如果返回的不是字典 只需要修改safe参数为false即可
     

    关于上传文件

    form表单上传文件需要注意的事项
      1.enctype需要由默认的urlencoded变成formdata
      2.method需要由默认的get变成post
    (目前还需要考虑的是 提交post请求需要将配置文件中的csrf中间件注释)

    如果form表单上传文件 后端需要在request.FILES获取文件数据 而不再是POST里面

    request

     
    request.method  # 获得请求的类型
    
    request.GET  # 获得get请求的数据,一个大字典
    
    request.POST  # 获得post请求的数据,一个大字典
    
    request.FILES 
    # 一个类似于字典的对象,包含所有的上传文件信息。
    # FILES 中的每个键为<input type="file" name="" /> 中的name,值则为对应的数据。
    #注意,FILES 只有在请求的方法为POST 且提交的<form> 带enctype="multipart/form-data" 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象。
    
    request.path   # 只回去url后缀 不获取?后面的参数
    
    request.get_full_path()   # 后缀和参数全部获取
     

    FBV与CBV(待续)

  • 相关阅读:
    9.27作业
    9.20作业
    9.13作业
    9.6作业
    localstorage,sessionstorage使用
    oracle 客户端重新安装遇到的问题
    HTML5学习笔记(<command>,<details>,<dialog>)
    HTML5学习笔记(HTML5新标签<bdi>)
    html5学习笔记(html5新标签<aside>)
    html5学习笔记(html5新标签<article>)
  • 原文地址:https://www.cnblogs.com/AbrahamChen/p/11537883.html
Copyright © 2011-2022 走看看