缓存
参考网址:https://github.com/whoareyou0401/PythonCourse/blob/master/web/django/djangocache.md
为什么用缓存:
可以帮助我们减轻服务器端的压力 并且加快相应请求速度,提高用户体验,也可以验证码数据的临时存储
怎么用:
django内置了缓存框架,并提供了几种常用的缓存
基于Memcached缓存
使用数据库进行缓存
使用文件系统进行缓存
使用本地内存进行缓存
提供缓存扩展接口
使用前需要配置settings.py(使用redis做缓存)
安装命令:pip install django-redis
#---在项目的settings.py中添加
#---RedisCache-config-------
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
使用
from django.views.decorators.cache import cache_page
@cache_page(60)
def my_data(req):
time.sleep(4)
return HttpResponse("hehe")
from django.core.cache import cache
from utils.captcha.captcha import create_captcha
原生方式
def img_captcha(request):
"""03图形验证码"""
text,image = create_captcha()
# request.session['captcha'] = text
# # 将图形验证码存储在session中
# request.session.set_expiry(10)
# #设置验证码过期时间为10s
cache.set('captcha',text,timeout=22)
#注意这里的key,由于django cache的机制,到redis中就变成了":1:captcha"
#django redis cache的key是由前缀:版本号:真正的key组成
return HttpResponse(image,content_type='image/png')
富文本
应用场景:
后台管理 还有 博客系统
如何使用
django 如何使用
pip install django-tinymce
TINYMCE_DEFAULT_CONFIG = {
'theme': 'advanced',
'width': 800,
'height': 600,
}
为了看到效果 我们新建了一个model
from tinymce.models import HTMLField
class MyBook(models.Model):
name = models.CharField(
max_length=30,
verbose_name="书名"
)
content = HTMLField()
将model注册到我们的admin里
将插件对应的静态文件拷贝到我们自己的static 同时设置settings.py
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
前端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>富文本</title>
</head>
<body>
<form action="#">
<textarea name="" id="" cols="30" rows="10">
</textarea>
</form>
</body>
<script src="/static/tiny_mce/tiny_mce.js"></script>
<script>
tinyMCE.init({
'mode':'textareas', 'theme':'advanced',
'width':800,'height':600,
})
</script>
</html>