17.Django会话session

使用cookie的特点是把用户信息保存在客户端,这样就存在了安全隐患
为了保持安全性,就产生了session,session是将用户信息,例如用户名和密码,访问的内容等等,以加密的形式保存在服务器
1.创建工程
django-admin.py startproject csvt11

2.创建项目
cd csvt11
python manage.py startapp online

3.修改配置文件
vim settings
打开session相关的东西

4.修改url配置文件
vim urls.py
url(r'^login/$','online.views.login'), #登陆动作
url(r'^index/$','online.views.index'), #首页动作
url(r'^logout/$','online.views.logout'), #注销动作

 

5.修改视图方法
vim online/views.py
from django.shortcuts import render_to_response
from django import forms
from django.http import HttpResponse,HttpResponseRedirect
from models import User

class UserForm(forms.Form)
username = forms.CharField()

def login(req):
if req.method == "POST":
uf = UserForm(req.POST)
if uf.is_valid():
username = uf.cleaned_data['username']
req.session['username'] = username
return HttpResponseRedirect('/index/')
else:
uf = UserForm()
return render_to_response('login.html',{'uf':uf})

def index(req):
username = req.session.get('username','anybody') #获取username,如果没有,就设置默认值为anybody
return HttpResponse('congratulations! %s login successful!!!' %username)
#return render_to_response('login.html',{'username':username})

def logout(req): #退出其实就是删除session
del req.session['username']
return HttpResponse('logout OK!!!')


6.数据库同步
python manage.py syncdb; #发现有django_session这张表

7.创建HTML文件
mkdir online/templates
cd online/templates
vim register.html
<body>
<h1>注册</h1>
<form method="POST" enctype="multipart/form-data">
{{uf.as_p}}
<input type="submit" value="ok"/>
</form>
</body>

vim login.html
<body>
<h1>登陆</h1>
<form method="POST">
{{uf.as_p}}
<input type="submit" value="ok"/>
</form>
</body>

vim index.html
<body>
<div>
<h1>congratulations! {{username}} login successful!!!</h1>
<a href="logout.html">logout</a>
</div>
</body>

 

9.启动开发服务器
python manage.py runserver

10.web上传文件然后回到upload和数据库查看有没有上传成功

posted @ 2018-04-25 11:32  Paco_Pig  阅读(116)  评论(0)    收藏  举报