路飛專案背景,contentType以及django快取
阿新 • • 發佈:2018-12-21
昨日回顧:
分頁器:
普通分頁
# 普通分頁 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