@tenlee
2015-08-19T05:00:52.000000Z
字数 3782
阅读 1568
Django
Python
models.py
class User(models.Model):
username = models.CharField(max_length=30)
password = models.CharField(max_length=100)
def __str__(self):
return self.username
view.py
#!/usr/bin/env python3
#coding = utf-8
from django.shortcuts import render
from django.http import *
from books.models import *
from django.contrib.auth.forms import UserCreationForm
from django.template import RequestContext
from django import forms
# Create your views here.
class UserForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget = forms.PasswordInput)
def register(request):
if request.method == 'POST':
uf = UserForm(request.POST)
if(uf.is_valid()):
uname = uf.cleaned_data['username']
pword = uf.cleaned_data['password']
User.objects.create(username = uname, password = pword)
return HttpResponseRedirect("/login/")
else:
uf = UserForm()
return render(request, 'books/register.html', {'uf': uf}, context_instance=RequestContext(request))
def login(request):
session = request.session.get('username', False)
if(not session):
if(request.method == 'POST'):
uf = UserForm(request.POST)
if(uf.is_valid()):
uname = uf.cleaned_data['username']
pword = uf.cleaned_data['password']
user = User.objects.filter(username__exact = uname, password__exact = pword)
if(user):
request.session['username'] = uname
return HttpResponse('login success')
#return HttpResponseRedirect('/home/')
else:
return HttpResponseRedirect('/login/')
else:
return HttpResponseRedirect('/login/')
else:
uf = UserForm()
return render(request, 'books/login.html', {'uf': uf}, context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/home/')
def home(request):
username = request.session.get('username', 'anybody')
return render(request, 'books/home.html', {'username': username})
def logout(request):
session = request.session.get('username', False)
if session:
del request.session['username']
return render(request, 'books/logout.html', {'username':session})
else:
return HttpResponse('please login')
def show_color(request):
if "favorite_color" in request.session:
return HttpResponse("Your favorite color is %s" %
request.session["favorite_color"])
else:
return HttpResponse("You don't have a favorite color")
def set_color(request):
if "favorite_color" in request.GET:
response = HttpResponse("Your favorite color is now %s"
% request.GET["favorite_color"])
request.session["favorite_color"] = request.GET["favorite_color"]
return response
else:
return HttpResponse("You didn't give a favorite color")
settings.py
添加响应的app,urls.py
添加相应的url
INSTALLED_APPS = (
'bootstrap_admin', # 使bootstrap_admin
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'gouwuche',
'books',
'polls',
)
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
'django.core.context_processors.request',
)
BOOTSTRAP_ADMIN_SIDEBAR_MENU = True
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
<body>
<h3>Welcome to this site !</h3>
<p>hello <span>{{ username }}</span> </p>
{% if username != 'anybody' %}
<a href="/logout/">logout</a>
{% else %}
<a href="/login/">login</a>
{% endif %}
</body>
<body>
<form method = 'post' enctype='multipart/form-data'>
{% csrf_token %}
{{ uf.as_p }}
<input type='submit', value='login'/>
</form>
</body>
<body>
<h3> Good Bye </h3>
{% if username %}
<a href="/login/">login</a>
{% endif %}
</body>
<body>
<form method="post" enctype='multipart/form-data'> {% csrf_token %}
{{ uf.as_p }}
<input type="submit" value="register"/>
</form>
</body>