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++之函数模板
    Boost库初见
    C++之异常处理
    C++之运行时类型识别RTTI
    Qt5.4静态编译方法
    Altium Designer极坐标布局方法
    PM2.5空气质量指数(AQI)是如何计算的
    emWin学习课堂
    uboot 下更改NAND的分区 fdisk
    gps 数据解析-NMEA 0183协议
  • 原文地址:https://www.cnblogs.com/luck-L/p/9873044.html
Copyright © 2011-2022 走看看