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