模板的使用
- 在模板文件内创建子应用的文件夹,每一个子应用的模板使用一个文件夹避免混乱
- 视图代码
class BooksView(View):
def get(self, request):
# 查询出所有图书对象
books = BookInfo.objects.all()
# 组成字典key:books value:为图书对象列表
dict1 = {
'books': books
}
# render方法返回模板 参1为request,参2为模板路径
# 参3为jinja2要使用的对象
ret = render(request, 'book/books.html', dict1)
return ret
- 模板中使用jinja2语法
- 循环
循环li标签 books为数据库查询的所有图书对象,获取图书对象的btitle属性
{% for book in books %}
<li>{{ book.btitle }}</li>
{% endfor %}
测试
设置Cookie
ret为HttpResponse对象
对象的set_cookie方法 参1 为 key 参2 为 value 命名参数max_age为有效时间
ret.set_cookie('name', 'rong', max_age=1000000)
设置Session到redis数据库
- 要安装一个redis与django交互的包
pip install django-redis
- 在django项目的settings文件中配置
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎
SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名
- key value形式设置session
request对象.session['key'] = 'value'
request.session['session_name'] = 'rong'
- 获取session
session_name = request.session['session_name']
- 删除session
request.session.clear()
- 删除django所连接的redis数据库
request.session.flush()
- 删除session内的指定key
del request.session['session_name']