luffy專案相關

2021-10-19 14:26:23 字數 4629 閱讀 1757

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 資...