pip install django-redis
# 在settings中配置
# redis快取配置,以後所有的快取都在redis中
caches =
,"decode_responses"
:true
,"password":""
,}}}
pip install django-cors-headers
# 在settings中配置
註冊:'corsheaders'
中介軟體: 'django.contrib.sessions.middleware.sessionmiddleware'
,'corsheaders.middleware.corsmiddleware'
,'django.middleware.common.commonmiddleware'
,
cors_allow_credentials =
true
cors_origin_allow_all =
true
cors_allow_methods =
(# 允許所有請求方式
,)
# 自定義搜尋類
# 方式一
from rest_framework.filters import basefilterbackend
class
searchbyname
(basefilterbackend)
:def
filter_queryset
(self,request,queryset,view)
:# name = request.query_params.get('name')
name = request.get.get(
'name'
) queryset = queryset.
filter
(name_startswith = name)
return queryset # 過濾以啥開頭的
class
searchbyprice
(basefilterbackend)
:def
filter_queryset
(self,request,queryset,view)
: price_gt = request.get.get(
'price_gt'
) price_lt = request.get.get(
'price_lt'
) queryset = queryset.
filter
(price__gt = price_gt)
return queryset
# 方式二:可以自定義沒有的過濾字段
from django_filters.filterset import filterset
from django_filters import filters
from
.models import course
class
coursefilter
(filterset)
:# 區間過濾:field_name關聯的model欄位,lookup_expr設定規則:gt是大於,gte是大於等於
max_price = filters.numberfilter(field_name =
'price'
,lookup_expr=
'lte'
) min_price = filters.numberfilter(field_name =
'price'
,lookup_expr=
'gte'
)class
meta
: model = course
fields =
['course_category'
,'max_price'
,'min_price'
]# 應用中註冊
['django_filters'
,# 需要註冊應用,
]# 在檢視中使用
pip install django-
filter
from django_filters.rest_framework import djangofilterbackend
class 檢視:
filter_backends =
[djangofilterbackend]
# 區域性配置
# filter_fields = ['age','***'] # 過濾的字段
filter_class = coursefilter # 區間過濾,配置filter_class前必須配置filter_backends = [djangofilterbackend]
# 全域性配置,優先順序區域性》全域性
rest_framework =
# 檢視中使用
from rest_framework.filters import orderingfilter
filter_backends =
[orderingfilter,djangofilterbackend]
ordering_fields =
['id'
,'price'
]# 排序的字段
# pagination.py
from rest_framework.pagination import pagenumberpagination
class
basicpagination
(pagenumberpagination)
:# 預設一頁顯示的條數
page_size =
2# url中攜帶頁碼的key
page_query_param =
'page'
# url中使用者攜帶自定義一頁條數的key
page_size_query_param =
'page_size'
# 使用者最大可自定義一頁的條數
max_page_size =
10# 在檢視中使用,區域性使用
pagination_class = basicpagination
# 關閉分頁功能
pagination_class =
none
# 全域性使用,在配置檔案中配置
rest_framework =
# 前端訪問**形式
# 在檢視中使用
# 認證類需要搭配乙個許可權類,保證必須登陸才能用
authentication_classes =
[jsonwebtokenauthentication,
]permission_classes =
[isauthenticated,
]
# 在配置檔案中設定
# 配置限制訪問頻率
rest_framework =
}from rest_framework.throttling import ******ratethrottle
class
smsthrotting
(******ratethrottle)
: scope =
'sms'
defget_cache_key
(self, request, view)
: mobile = request.query_params.get(
'mobile'
)# cache_format = 'throttle_%(scope)s_%(ident)s'
return self.cache_format%
# 在檢視中使用
throttle_classes =
[throttlings.smsthrotting,
]
luffy專案中關於APIView的使用
views中 購物車的新增課程請求 param request return defget self,request 檢視購物車列表請求 param request return pass from rest framework.authentication import baseauthentic...
7 luffy資料庫配置
1.管理員連線資料庫 mysql uroot proot 2.建立資料庫 create database luffy 3.檢視使用者 select user,host,password from mysql.user 5.7往後的版本 select user,host,authentication ...
專案管理相關
1 概要設計需包括 1 總體設計 系統的總體框架圖 模組劃分 系統流程 2 內部介面 用於系統內部各模組間或模組內的互動。3 外部介面 包括業務系統相關介面,gis平台對外提供的標準化介面,特別關注gis平台應用於不同業務系統時所提供的介面,比如 如何定製選單,登入,定製業務系統功能面板等等 4 資...