回顾Django

目录

1 Django请求流程

 2 MVC和MVT

3 Flask

Djangi的创建命令

Model的作用是什么

View的作用是什么

Model如何来使用

迁移成功,成功的标志是什么

Django数据库查询

view的使⽤

1 Django请求流程

回顾Django_第1张图片

 python中的wsgi.py

 2 MVC和MVT

设计模式--->MVC--->java

设计模式--->MVT--->python回顾Django_第2张图片

wsgi:

Web服务器网关接口Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

usgi

WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。

WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。

WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。

很多框架都自带了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。当然性能都不好,自带的 web server 更多的是测试用途,发布时则使用生产环境的 WSGI server或者是联合 nginx 做 uwsgi 。  

3 Flask

Django--->Flask(一个文件)

Flask里有:(有8个请求方式):

          post:向指定的资源提交数据,数据被包含在请求中,POST请求可能导致新的资源和建立已有资源的修改

          get:请求指定页面,并返回实体主题

          put:从客户端向服务器传送的数据取代指定的文档内容

          delete:请求服务器删除指定页面

          head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

          connect:HTTP/1.1协议中预留能够将连接改为管道方式的代理服务器

          options:允许客户端查看服务器的性能

          trace:回显服务器收到的请求,主要用于测试或者诊断

                                              请求行

                                              请求头

                                              请求体

回顾Django_第3张图片

Djangi的创建命令

djangp_admin startproject

Model的作用是什么

操作数据库

View的作用是什么

处理逻辑

Model如何来使用

建立表结构----->创建模型类

数据库生成表----->迁移模型类

表的数据操作----->增删改查

迁移成功,成功的标志是什么

在migrations文件夹里面会出现对应文件

Django数据库查询

1.基础查询

        get(单一查询)        all(查询多个结果)

        filter.count(查询结果的数量)        exclude(查询结果取反)

2.模糊查询

        contanins(查询包含的)        startswith(以...开头)        endswith(以...结尾)

3.范围查询

        in(在范围内)        range(范围为)

4.比较查询

        gt(大于)        gte(大于等于)        lt(小于)       

        lte(小于等于)        exclude(不等于)

5.Q查询

        或(|)        与(&)         非(~)

6.聚合查询

        使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg 平均,Count 数量,Max 最大,Min 最小,Sum 求和

       #  基本查询
        name = User.objects.get(name='李四')
        name = User.objects.all(name='李四')
        name = User.objects.filter(name='李四').count()
        name = User.objects.exclude(name='李四')
        # 模糊查询    # 不太会
        name = User.objects.filter(name_contains='张')
        name = User.objects.filter(name_startswith='张')
        name = User.objects.filter(name_endswith='三')
        print(name)
        # 范围查询
        id = User.objects.filter(t_id__in=[1,2])
        id = User.objects.filter(id_range=[1,3])
        print(id)
        # 比较查询
        age = User.objects.filter(age__gt = 19)
        age = User.objects.filter(age = 18)
        # 聚合查询
        age = User.objects.aggregate(Sum('age'))
        age = User.objects.aggregate(Avg('age'))
        age = User.objects.aggregate(Max('age'))
        age = User.objects.aggregate(Min('age'))
        print(age)
        # Q查询
        id = User.objects.filter(Q(id=2) | Q(age=20))
        id = User.objects.filter(Q(id=2) & Q(age=18))
        print(id)
        return JsonResponse({'code': 200})

补充

1.排序    

    使用order_by对结果进行排序

      order_by('bread')    #升序排列

      .order_by('-bread')    #降序排列

2.关联查询

    一对多模型

    一到多的访问语法:一对应的模型类对象.多对应的模型类名小写_set

    多到一的访问语法:多对应的模型类对象.多对应的模型类中的关系类属性名

    方向查询除了可以使用模型类名_set,还有一种是在建立模型类的时候使用related_name来指定变量名。

3.F对象和Q对象

    比较两个字段对象之间的关系用F对象。(F对象可以进行运算)

4.日期查询 

    year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算。

     (bpub_date__year = 1977)  #查询1977年出版的书

     (bpub_date__gt =date(1977,1,1))  #查询1977年1月1日以后出版的书

5.空查询:

    isnull  是否为空

view的使⽤

获取view⾥request的请求参数

  • 获取get

        request.GET.get()

  • 获取form-data

        request.POST.get()

  • 获取json

        data=request.body

        json.loads(data)

返回请求的数据

  • 返回json

        JsonResponse

  • 返回字符串

        HTTPResponse

序列化

        for i in 查询结果集:

                数据=i,字段名

回顾Django_第4张图片

 

你可能感兴趣的:(python,django,flask,python)