• views 视图层


    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表

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

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

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

  • 相关阅读:
    【FIRST USE】第一次用git把代码上传到github
    [多线程学习笔记] 一个线程安全的队列
    C中宏展开问题
    C语言中的命名空间
    c语言中赋值语句的结果
    Python一些难以察觉的错误
    C语言中的内存压缩技术
    简述数据结构:二叉查找树
    指针与指针的引用、指针的指针
    C++ 中的virtual关键词
  • 原文地址:https://www.cnblogs.com/msj513/p/10246692.html
Copyright © 2020-2023  润新知