Django框架学习(三)

一. 设置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 %}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值