码迷,mamicode.com
首页 > 其他好文 > 详细

views 视图层

时间:2019-01-09 21:49:41      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:一个   地址   sub   server   基础   book   成功   必须   本质   

1.request对象

method:请求方式 GET:get请求的参数(post请求,也可以携带参数)

POST:post请求的参数(本质是从bdoy中取出来,放到里面了)

COOKIES--->后面讲 META:字典(放着好多东西,前端传过来的,一定能从其中拿出来)

body:post提交的数据 path:请求的路径,不带参数

request.get_full_path() 请求路径,带参数

session---后面讲 user---后面讲

FILES encoding:编码格式

is_ajax()---后面讲

 

2HttpResponse

三件套(render,HttpResponse,redirect)

-JsonResponse:往前端返回json格式数据(没有它,我可以自己写) -转列表格式:指定safe=False -中文字符问题:json_dumps_params={‘ensure_ascii‘:False}

 

def jsonre(request):
    dic = {name:msj,pwd:"123"}
    #from django.http import JsonResponse
    # 最基础的支持字典形式
    # return JsonResponse(dic)

    #想要支持其他格式的json对象的话,取消safe=False设置
    return JsonResponse([dic],safe=False)

3 wsgiref,uwsgi, 都遵循wsgi协议

—遵循一个协议wsgi(web server Gateway interface web 服务网关接口)

wsgiref单线程,不支持高并发,uwsgi 支持高并发

4 CBV(基于类的视图)和FBV(基于函数的视图)

CBV 必须继承

views文件中

from django.views import View

类的固定模式

class Myclass(View):
    def dispatch(self,request,*args,**kwargs):
        #逻辑代码块
        res= super().dispatch(request,*args,**kwargs)
        return
    def get(self,request):
        #逻辑代码块
        return HttpResponse(cbv--get)
     def post(self,request):
        #逻辑代码块
        return HttpResponse(cbv--post) 

在路由中的使用方法

url(^mycass/$,views.MyClass.as_view())
#需要加()执行,获得相应的地址

5 文件上传

-form表单默认提交的编码方式是enctype="application/x-www-form-urlencoded" -前端:如果要form表单上传文件,必须指定编码方式为:multipart/form-data -后端:

def upload(request):
    if request.method == "GET":
        return render(request,upload.html)
    else:
        #浏览器上传的文件使用的是post方法,而具体对象在request对象.Files.get("name")
        file = request.FILES.get(ss)
        with open(file.name,wb) as f:
            for line in file:
                f.write(line)
        return HttpResponse("上传成功")

6 前端提交数据编码格式:

-multipart/form-data(上传文件) -application/x-www-form-urlencoded(默认编码)

<form action="/upload/" method="post" enctype="multipart/form-data">
    <input type="file" name="ss">
    <input type="submit" value="提交">

</form>

7 图书管理系统表分析:

图书管理系统 -表: book表 author表 publish表

-一对一:一对多的关系一旦确立,关联字段写在哪都可以

-一对多:一对多的关系一旦确立,关联关系写在多的一方

-多对多:多对多的关系,必须创建第三张表(中间表)

views 视图层

标签:一个   地址   sub   server   基础   book   成功   必须   本质   

原文地址:https://www.cnblogs.com/msj513/p/10246692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!