16.Django会话cookie
1.创建工程
django-admin.py startproject csvt10
2.创建项目
cd csvt09
python manage.py startapp online
3.修改配置文件
vim settings
略
4.修改url配置文件
vim urls.py
url(r'^register/$','online.views.register'), #注册动作
url(r'^login/$','online.views.login'), #登陆动作
url(r'^index/$','online.views.index'), #首页动作
url(r'^logout/$','online.views.logout'), #注销动作
5.修改数据库模板配置文件
vim online/models.py
from django.db import models
class User(models.Model):
username = models.CharField(max_length=20)
password = models.CharField(max_length=200)
def __unicode__(self):
return self.username
6.修改视图方法
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()
password = forms.CharField(weidget=forms.PasswordInput)
def register(req):
if req.method == "POST":
uf = UserForm(req.POST)
if uf.is_valid():
username = uf.cleaned_data['username']
password = uf.cleaned_data['password']
User.objects.create(username=username,password=password) #创建对象用于记录用户名和密码并保存至数据库
return HttpResponseRedirect('/login/') #保存至数据库之后我们就跳转到登陆页面
else:
uf = UserForm()
return render_to_response('register.html',{'uf':uf})
def login(req):
if req.method == "POST":
uf = UserForm(req.POST)
if uf.is_valid():
username = uf.cleaned_data['username']
password = uf.cleaned_data['password']
users = User.objects.filter(username__exact=username,password__exact=password) #创建对象用于记录用户名和密码保存至数据库并赋给变脸users
if users: #判断,如果users值不为空
response = HttpResponseRedirect('/index/')
response.set_cookie('username',username,3600) #设置用户登陆信息的cookie,保存时间为3600秒
return response #设置好了cookie之后再返回给用户
else:
return HttpResponseRedirect('/login/')
else:
uf = UserForm()
return render_to_response('login.html',{'uf':uf})
def index(req):
username = req.COOKIES.get('username','') #获取cookie值,后面的''代表如果没有username,默认为空
return HttpResponse('congratulations! %s login successful!!!' %username) #返回页面
#return render_to_response('login.html',{'username':username}) 网页显示主页方式
def logout(req):
response = HttpResponse('我已退出') #获取response对象
response.delete_cookie('username') #删除cookie
return response
7.数据库同步
python manage.py syncdb;
8.创建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" enctype="multipart/form-data">
{{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和数据库查看有没有上传成功

浙公网安备 33010602011771号