首页 > 其他 > 详细

Django视图(views)

时间:2019-04-14 20:35:53      阅读:145      评论:0      收藏:0      [点我收藏+]

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)

 

Django视图(views)

原文:https://www.cnblogs.com/wm0217/p/10706642.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!