07-10 django 46-50


46.django 中想要驗證表單􏰀交是否格式正確需要用到 form 中的那個方法

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM