使用django的Python会话框架

使用django的Python会话框架

Sessions框架可以用来为网站中的匿名用户提供持久的行为。Sessions是Django用于你在每个网站访问者的基础上存储和检索数据的机制。Django使用一个包含特殊会话ID的cookie。

要在django中启用会话,你需要在settings.py中确认两件事。

1.MIDDLEWARE_CLASSES有’django.contrib.session.middleware.SessionMiddleware’激活。
2.INSTALLED_APPS中加入了’django.contrib.session’。

    # Application definition
    INSTALLED APPS = [
    'dhun',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    ]
    MIDDLEWARE = [
    'django.middleware.securitY.SecuritYMiddleware',
    'django.contrib.sessions.middleware.SessionMiddLeware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMidd1eware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]

启用会话后,必须创建会话数据库表,为此运行以下命令。

python manage.py syncdb

在运行前面的命令后,如果没有发现任何错误,那么随后运行下面的命令,最终将保存在迁移文件中的变化反映到数据库中。

python manage.py migrate

现在一旦创建了会话,就必须对cookie进行测试。在views.py中,在index视图中设置测试cookie,并在你的about视图中测试该cookie。

from django.shortcuts import render
from django.http import HttpResponse
from .models import Album
  
def home(request) :
    a = Album.objects.all()
    return render(request, "dhun/home.html ", {"Album":a})
      
def index(request) :
    num_authors = Author.objects.count()
    request.session.set_test_cookie()
    num_visits = request.session.get( 'num_visits', 0)
    request.session ['num_visits'] = num_visits + 1
    context ={
        'num_books':num_books,
        'num_instances':num_instances,
        'num_instances available':num_instances_available,
        'num_authors':num_authors,
        'num_visits':num_visits,
    }
          
def about(request):
    LANGUAGE_CODE ='en-us '
    TIME_ZONE ='UTC'
    if request.session.test_cookie_worked():
        print ("Cookie Tested !")
        request.session.delete_test_cookie()

要看到到目前为止所做的工作。

  • 首先通过这个命令运行localhost。
   python manage.py runserver
  • 然后在浏览器中打开http://localhost:8000/。
  • 访问索引页面,然后访问关于页面。”Cookie已测试!”将被打印到控制台。
    使用django的Python会话框架

要知道网站被访问了多少次。你必须在views.py中做以下两件事。

1.添加并更新索引视图函数/li>中的代码。
2.更新关于视图的功能

    from django.shortcuts import render
    from django.http import HttpResponse
    from .models import Album
      
    def home(request):
        a = AIbum. objects.all()
        return render(request, "dhun/home.html", {"album":a})
      
    def index(request):
        visits = int(reques.COOKIES.get('visits', '0'))
        response = HttpResponse(template.render(context))
      
        if request.COOKIES.has_key('last_visit'):
            last_visit = request. COOKIES [ ' last_visit']
            last_visit_time = datetime.strptime(last_visit[:-7], "%Y-%m-%d %H:%M:%S") "
            curr_time = datetime.now()
            if (curr_time—last_visit_time).days > O:
                response.set_cookie( 'visits ', visits + 1)
                response. set_cookie( ' last_visit', datetime.now())
            else :
                response.set_cookie( ' last_visit', datetime.now())
            return response
      
    def about(request) :
        context = RequestContext(request)
        if request.COOKIES.has_key(' visits '):
            v = request.COOKIES [' visits ']
        else :
            v = 0
        return render_to_response('music/about.html', { 'visits':v}, context)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Django 教程