A. form.save()
B. form.save(commit=False)
C. form.verify()
D. form.is_valid() *****
47.使用Django中modelfilter條件過濾方法,把下邊sql語句轉化成python 代碼
select * from company where title like "%abc%" or mecount>999 order by createtime desc;
48.django 對數據查詢結果排序怎么做, 降序怎么做?
排序使用order_by()
降序需要在排序字段名前加-
查詢字段大於某個值:使用filter(字段名_gt=值)
49.下面關於http協議中的get和post方式的區別,那些是錯誤的?(多選)
A. 他們都可以被收藏, 以及緩存
B. get請求參數放在url中
C. get只用於查詢請求,不能用於數據請求
D. get不應該處理敏感數據的請求
50.django 中使用 memcached 作為緩存的具體方法? 優缺點說明?
安裝:
首先要在django運行環境中安裝:python-memcached(命令:pip install python-memcached)
1)在Django的settings中設置緩存
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': ,'127.0.0.1:11211', # 可以為遠程地址和端口,可以設置多個ip
'TIMEOUT': 86400, # 1 day,設置成0緩存將失效
'OPTIONS': {
'MAX_ENTRIES': 1000, # 高速緩存允許的最大條目數,超出這個數則舊值將被刪除. 這個參數默認是300.
'CULL_FREQUENCY': 3, # 當達到MAX_ENTRIES 的時候,被刪除的條目比率。 實際比率是 1 / CULL_FREQUENCY,默認是3
}
}
}
2)業務邏輯
#coding=utf-8
def key_hash(value):
"""hash緩存key,防止過長"""
import hashlib
return '%s' % hashlib.md5(value).hexdigest()
def cache(num1, num2):
"""
:param num1: 獲取或者設置cache的標識
:param num2:獲取或者設置cache的標識
:return: 緩存dict
"""
from django.core.cache import cache
import logging
log = logging.getLogger(__name__) # 日志
# 去重並排序,增加緩存命中率
cache_key = 'num1={num1}&num2={num2}'.format(num1=num1, num2=num2)
cache_key = key_hash(cache_key)
# in cache, return cache
if cache.get(cache_key):
log.debug('cache %s hitting ' % cache_key)
return cache.get(cache_key)
# not in cache, get result and set cache
ret = None
# TODO do something get result
ret = 'something'
cache.set(cache_key, ret, 60 * 60 * 24) # 一天過期
return ret