一. 设置cookie和session
-
新建一个子应用cookies, python manage.py startapp cookies
-
在blog主项目settings.py文件中注册.
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'viewapp', 'cookies', ]
-
在blog项目urls.py文件中添加cookies路由.
from . import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), path('view/', include('viewapp.urls')), path('cook/', include('cookies.urls')), ]
-
在子应用cookies中创建urls.py文件.
from django.urls import path from cookies import views urlpatterns = [ path(r'cookie/', views.cookies), path(r'session/', views.sessions), ]
-
在views.py文件中编写cookies函数.
from django.http import HttpResponse from django.shortcuts import render def cookies(request): # 设置cookie res = HttpResponse('cookie') res.set_cookie('username', value='root') # 获取cookie cookie = request.COOKIES.get('username') print(cookie) # 删除cookie res = HttpResponse('cookie') res.delete_cookie('username') return res
-
django框架中设置session要先建立django_session表.
- django内置好了表模型,输入命令python manage.py migrate即可创建.
def sessions(request): # 设置session request.session['username'] = 'lisi' # 获取session username = request.session.get('username') print(username) # 删除session中单个值 del request.session['username'] # 删除整个session request.session.flush() # 设置session过期时间 request.session.set_expiry(10) return HttpResponse('session')
二. 模板
-
配置模板
- 创建模板目录templates
- 在settings.py中修改TEMPLATES配置项的DIRS值:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
-
django模板语法
# 获取单个变量 {{ 变量名 }} # 条件判断 {% if 条件语句 %} {% else %} {% endif %} # 循环遍历 {% for foo in items %} {{ foo }} {% endfor %} # 过滤器 变量|过滤器:参数 # 模板继承 # 父模板 {% block 名称 %} {% endblock %} # 子模板 {% extend "父模板路径" %} # 模板注释 # 单行注释 {# ... #} # 多行注释 {% comment %} {% endcomment %}