zoukankan      html  css  js  c++  java
  • Django( 学习第四部 Django的views视)

    目录

    视图层

      JsonResponse对象

      form表单之文件上传

       request方法及属性

      FBV与CBV

    JsonResponse对象

    前端序列化
        JSON.stringify()        json.dumps()
        JSON.parse()            json.loads()
    
    基础版(dic)
    import jsom
    def add(request):
        a = {'12':'八嘎'}
        b = json.dumps(a,ensure_ascii=False)
        return HttpResponse(b)
    
    进阶版(dic)
    from django.http import JsonResponse
    
    def add(request):
        a ={'你好':123,123:'夏一一'}
        return JsonResponse(a,json_dumps_params={'ensure_ascii':False})    #原型化输出
    
    
    (list)
    
    def add(request):
        a = [123,'你好']
        return JsonResponse(a,safe=False)
    原型化输出没有解决

    form 表单上传文件及后端操作 

    html部分

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="" method="post" enctype="multipart/form-data">
        <p>username:<input type="text" name="username"></p>
        <p>file:<input type="file" name="file"></p>
        <input type='submit'>
    </form>
    </body>
    </html>

    视图函数部分

    def upload(request):
        if request.method =="POST":
            print(request.FILES)
            file_obj = request.FILES.get('file')
            print(file_obj.name)
            with open (file_obj.name,'wb') as f:
                for i  in file_obj.chunks():
                    f.write(i)
        return render(request,"form.html")

     request对象方法

    ''''
    request.method   #获取请求方式
    request.POST      #获取post请求
    request.GET        #获取get请求
    request.FILES      #获取文件
    
    request.path            #获用户输入的路由
    request.path_info     #获用户输入的路由
    request.get_full-path()   #获用户输入的路由,以及所携带对的参数
    
    request.body       #原生浏览器发来的二进制数据(了解)
    '''   

    FBV与CBV

    # 视图函数可以是类也可以是函数
    
    
    
    #FBV
    def index(request):
        return HttpResponse('index')
    
    
    #CBV
    from django.views import View
        
        class Mylogin(View):
            def get(self,request):
                return HttpResponse('get方法')
            def post(self,request):
                return HttpResponse('post方法') 
    
    
    CBV 的路由匹配
    
    path('login/',views.Mylogin.as_view())
    
    
    
    '''
    FBV和CBV各有千秋
    CBV的特点:    能够直接获取请求方式,并根据请求方式不同匹配到对应的方法执行
    
    '''
    
    CBV原码剖析
    (没搞懂,后期补存 加油liuun)
    好好学习,天天向上。
  • 相关阅读:
    Android x86 镜像分析之四
    Android x86 镜像分析之三
    Android x86 镜像分析之二
    Android x86镜像分析
    tizen镜像制作
    完成登录与注册页面的前端
    JavaScript 基础,登录前端验证
    CSS实例:图片导航块
    导航,头部,CSS基础
    web基础,用html元素制作web页面
  • 原文地址:https://www.cnblogs.com/f211/p/13789286.html
Copyright © 2011-2022 走看看