• 路飞项目背景,contentType以及django缓存


    昨日回顾:

    分页器:

    普通分页

    # 普通分页
    from rest_framework.pagination import PageNumberPagination
    -每页的大小(默认)
    -查询的时候,按哪个字段查
    -当前页的每页大小(用户指定的)
    -每页显示最大条数
    -写一个类继承分页类,重写属性
    -使用的时候:
    -实例化出一个分页器对象
    -返回值=对象.paginate_queryset(book_list, request, self)
    -序列化(返回值)
    -return序列化之后的值


    偏移分页

    # 偏移分页
    from rest_framework.pagination import LimitOffsetPagination
    -每页的大小:default_limit
    -标杆值offset
    -偏移值limit
    -最大偏移的数:max_limit
    加密分页(速度快)

    加密分页(速度快)
    # 加密分页
    from rest_framework.pagination import CursorPagination
    -写一个类继承分页类,重写属性
    -cursor_query_param:以该字段配置的值查询
    -ordering 按哪个字段排序


    版本控制:

    -URLPathVersioning
    -版本直接放在路由中,配置路由
    url(r'^(?P<version>[v1|v2|v3]+)/books/$', views.Book.as_view({'get':'get_all'}),name='ttt'),
    -在setting中配置
    'VERSION_PARAM':'version', #根据哪个键取查询
    'DEFAULT_VERSION':'v1', #默认的版本号
    'ALLOWED_VERSIONS': ['v1', 'v2'], #允许的版本号
    -在视图类中:局部使用
    versioning_class = URLPathVersioning
    -在request对象中,可以取出版本request.version
    -反向解析
    -因为request对象能取出版本号,内部自动填入
    -url2=request.versioning_scheme.reverse('ttt',request=request)
    -如果是路由有别的有名/无名分组,需要手动传过去
    -QueryParameterVersioning

    路飞项目背景

    人员配比:
    开发:
    -前端vue一个人
    -主站 2个人
    -导师后台 1 个人
    -管理员后台 1个人
    ui+原型设计 1 个人
    产品经理 1 个人
    测试 1个人
    专职导师:2个人
    项目:
    主站:
    -课程
    -课程详情
    -课程章节
    -课程的价格策略
    -个人中心
    -登录
    -注册
    -修改密码
    -...
    -购物车
    -加入购物车
    -修改购物车
    -支付中心
    -去支付
    -优惠券
    -6种优惠券:全站的:满减,立减,打折 每个课程:满减,立减,打折 
    -去支付
    -支付宝支付
    
    -推送
    -微信推送
    -视频播放
    
    咱们要写的:
    课程相关的,登录,购物车,支付中,支付宝支付,推送,视频播放


    contentType组件

    干啥用的?django内置的一个组件,方便我们快速的连表操作
    在course表中:
    policy = GenericRelation('PricePolicy', object_id_field='course_id', content_type_field='table_id')
    
    在价格策略表中:
    content_obj = GenericForeignKey('table_id','course_id')
    --加的这两个字段都不会在数据库中生成,它只是用来查询,插入

     

    django的缓存

    全站缓存:

    两个中间件:
    MIDDLEWARE_CLASSES = (
    ‘django.middleware.cache.UpdateCacheMiddleware’, #第一
    'django.middleware.common.CommonMiddleware',
    ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后
    )


    单页面缓存:

    -from django.views.decorators.cache import cache_page
    -装饰器加载视图函数上即可
    @cache_page(5)


    页面局部缓存:

    {% load cache %}
    #第一个参数是时间,第二个参数是别名
    {% cache 5 'test' %}
    缓存的时间:
    {{ ctime }}
    {% endcache %}
    
    缓存的位置:(只需要改配置文件)
    内存
    文件
    数据库
    redis




  • 相关阅读:
    Tornado输出和响应头
    sqlalchemy 学习(二)scoped session
    04:sqlalchemy操作数据库 不错
    sqlalchemy(二)高级用法
    红黑树
    Minimum Window Substring
    Max Points on a Line
    分治算法
    Maximum Subarray
    Word Break
  • 原文地址:https://www.cnblogs.com/ouyang99-/p/10153824.html
Copyright © 2020-2023  润新知