Rest Framework第六天-路飞学城项目分析、contentType组件、django缓存机制、跨域问题

1 路飞学成项目分析
    -主站
        课程系列:
            -所有课程(专题课,学位课)
            -课程详情
            -视频播放
            -课程章节
            -课程评论
            -课程价格策略
            -加入购物车
            -支付中心
            -去支付(调支付宝支付)
        首页
        轻课
        个人中心:
            登陆
            注册
            个人中心
        
    -管理员后台
        
    -导师后台

2 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    拿到的就是课程对象
    

3 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 %}

4 跨域请求
    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'
    建议写再中间件里
    注释:里面尽量不要写(*),都支持(*)

安装vue脚手架
先装node.js

从官网下载并安装node.js

npm install -g @vue/cli

vue create my-project


cd 到 my-project 目录中,启动 npm run serve

扫描二维码关注公众号,回复: 4807181 查看本文章

npm run serve

npm install axios

猜你喜欢

转载自blog.csdn.net/qq_17513503/article/details/83384488