zoukankan      html  css  js  c++  java
  • Django视图(views)

    1.FBV (基于函数的视图)

    实例

       url.py

    url(r'^add_publicer/',views.add_publicer)
    def add_publicer(request):
        if request.method=='POST':
            new_name=request.POST.get('publicer_name',None)
            if new_name:
                models.Chubanshe.objects.create(name=new_name)
                return redirect("/publicer_list/")
            else:
                return HttpResponse('error!')
        return render(request,'add_publicer2.html')

    2.CBV (基于类的试图)

    实例

     url.py

    url(r'^add_publicer/', views.Addpublicer.as_view())
    from django.views import View
    
    class Addpublicer(View):
        def get(self,request):
            return render(request, 'add_publicer2.html')
        def post(self,request):
            new_name = request.POST.get('publicer_name', None)
            if new_name:
                models.Chubanshe.objects.create(name=new_name)
                return redirect("/publicer_list/")
            else:
                return HttpResponse('error!')

    3.request对象

      1.上传文件的HTML代码

     <form action="/upload/" method="post" enctype="multipart/form-data">
            <input type="file" name="upload_file">
            <input type="submit" value="开始上传">
     </form>

       (2)views.py(函数代码)

    
    
    def upload(request):
    """
    保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。
    但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
    :param request:
    :return:
    """
    if request.method == "POST":
    # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
    filename = request.FILES["upload_file"].name
    # 在项目目录下新建一个文件
    with open(filename, "wb") as f:
    # 从上传的文件对象中一点一点读
    for chunk in request.FILES["upload_file"].chunks():
    # 写入本地文件
    f.write(chunk)
    return HttpResponse("上传OK")
    
    

    4.JsonResponse对象

      JsonResponse是HttpResponse的子类,专门用来生成JSON编码的响应。

        默认只能传递字典类型,如果要传递非字典类型需要设置一下safe关键字参数

    def json_test(request):
        information={'name':'吴志远','age':23}
        #name=['Tom','Json','Meimei']
        from django.http import JsonResponse
        response = JsonResponse(information)
        #response = JsonResponse(name,safe=False)
        return HttpResponse(response)
  • 相关阅读:
    魅族Java面经
    笔试常考的Java基础
    笔试常考的Linux命令大全
    Spring概念
    Java三大框架的配置
    Myeclipse的使用
    项目经验
    Android四大组件及activity的四大启动模式
    java基础
    IT在线笔试总结(二)
  • 原文地址:https://www.cnblogs.com/wm0217/p/10706642.html
Copyright © 2011-2022 走看看