zoukankan      html  css  js  c++  java
  • ContentType组件,Django缓存机制,跨域请求

    ContentType组件
    解决什么问题:表的id和数据id,来唯一确定一条数据
    用:
    插入数据:
    models:content_obj = GenericForeignKey('table_id', 'course_id')
    存:models.PricePolicy.objects.create(period=5, price=18000, content_obj=degree)

    查询数据:
    1 通过课程查价格策略:
    policy = GenericRelation('PricePolicy', object_id_field='course_id', content_type_field='table_id')
    course.policy.all() 拿出所有价格策略
    2 通过价格策略查课程
    content_obj = GenericForeignKey('table_id', 'course_id')
    price.content_obj 拿到的就是课程对象

    Django缓存机制
    三个粒度:
    1 全站缓存
    用中间件:
    MIDDLEWARE = [
    # 'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.security.SecurityMiddleware',
    。。。。。。
    # 'django.middleware.cache.FetchFromCacheMiddleware'

    ]
    # CACHE_MIDDLEWARE_SECONDS=10
    2 单视图:
    用装饰器
    from django.views.decorators.cache import cache_page
    # @cache_page(24*60*60)
    3 局部页面:
    {% load cache %}
    {% cache 5 'test' %} 两个参数:时间,唯一标识
    {{ ctime }}
    {% endcache %}

    跨域请求
    1 浏览器的同源策略
    2 简单请求:发一次请求
    response['Access-Control-Allow-Origin'] = '*'
    response['Access-Control-Allow-Origin'] = 'http://127.0.0.1:8008,http://127.0.0.1:8009'
    2 非简单请求:发两次,一次预检(OPTIONS),第二次是真正的请求
    if request.method=='OPTIONS':
    response['Access-Control-Allow-Methods']='PUT,DELETE'
    response['Access-Control-Allow-Headers']='Content-Type'
    建议写再中间件里
    注释:里面尽量不要写(*),都支持(*)

  • 相关阅读:
    二级指针与二维数组
    二维数组的两种访问方式
    函数返回局部变量
    函数指针
    链表
    二叉树各种遍历
    二叉树常见问题
    C语言单链表实现19个功能完全详解
    halcon算子翻译——set_fuzzy_measure_norm_pair
    Halcon算子翻译——set_fuzzy_measure
  • 原文地址:https://www.cnblogs.com/luck-L/p/9873044.html
Copyright © 2011-2022 走看看