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
npm run serve
npm install axios