Python新手使用的Django架站的16堂课 — 第九章(一)
page255
python manage.py runserver 192.168.99.218:8080
views.py
def index(request,pid=None,del_pass=None):
template = get_template('index.html')
if request.session.test_cookie_worked():
request.session.delete_test_cookie()
message = "cookie supported!"
else:
message = 'cookie not supported'
request.session.set_test_cookie()
html = template.render(locals())
return HttpResponse(html)
第二次打开的时候:
修改 header.html
<!-- header.html (ch09www project) -->
<nav class='navbar navbar-default'>
<div class='container-fluid'>
<div class='navbar-header'>
<div class='navbar-brand' align=center>
分享日记
</div>
</div>
<ul class='nav navbar-nav'>
<li class='active'><a href='/'>Home</a></li>
{% if username %}
<li><a href='/userinfo'>个人资料</a></li>
<li><a href='/post'>写日记</a></li>
<li><a href='/logout'>注销</a></li>
{% else %}
<li><a href='/login'>登录</a></li>
{% endif %}
<li><a href='/admin'>后台管理</a></li>
</ul>
</div>
</nav>
login.html
<!-- login.html (ch09www project) -->
{% extends "base.html" %}
{% block title %}登录分享日记{% endblock %}
{% block content %}
<div class='container'>
{% if message %}
<div class='alert alert-warning'>{{ message }}</div>
{% endif %}
<div class='row'>
<div class='col-md-12'>
<div class='panel panel-default'>
<div class='panel-heading' align=center>
<h3>登录我的私人日记</h3>
</div>
</div>
</div>
</div>
<form action='.' method='POST'>
{% csrf_token %}
<table>
{{ login_form.as_table }}
</table>
<input type='submit' value='登录'><br/>
</form>
</div>
{% endblock %}
修改 forms.py
class LoginForm(forms.Form):
COLORS = [
['红','红'],
['黄','黄'],
['绿','绿'],
['紫','紫'],
['蓝','蓝'],
]
user_name = forms.CharField(label='您的姓名', max_length=10)
user_color = forms.ChoiceField(label='幸运颜色',choices=COLORS)
views.py
def login(request):
if request.method == 'POST':
login_form = forms.LoginForm(request.POST)
if login_form.is_valid():
username = request.POST['user_name']
usercolor = request.POST['user_color']
message = "登录成功"
else:
message = "请检查输入的字段内容"
else:
login_form = forms.LoginForm()
template = get_template('login.html')
request_context = RequestContext(request)
request_context.push(locals())
html = template.render(request_context)
response = HttpResponse(html)
try:
if username:
response.set_cookie('username',username)
if usercolor:
response.set_cookie('usercolor',usercolor)
except:
pass
return response
urls.py
url(r'^login/$', views.login),
index.html
<!-- index.html (ch09www project) -->
{% extends "base.html" %}
{% block title %}分享日记{% endblock %}
{% block content %}
<div class='container'>
{% if message %}
<div class='alert alert-warning'>{{ message }} </div>
{% endif %}
<div class='row'>
<div class='col-md-12'>
<div class='panel panel-default'>
<div class='panel-heading' align=center>
<h3>我的私人日记</h3>
</div>
</div>
</div>
</div>
{% if username and usercolor %}
您的姓名叫做:{{ username }},最爱{{ usercolor }}色
{% endif %}
</div>
{% endblock %}
views.index
def index(request,pid=None,del_pass=None):
if 'username' in request.COOKIES and 'usercolor' in request.COOKIES:
username = request.COOKIES['username']
usercolor = request.COOKIES['usercolor']
template = get_template('index.html')
request_context = RequestContext(request)
request_context.push(locals())
html = template.render(request_context)
return HttpResponse(html)
logout
urls.py
url(r'^logout/$', views.logout),
views.py
from django.shortcuts import redirect
def logout(request):
response = redirect('/')
response.delete_cookie('username')
return response
测试:
http://192.168.99.218:8080/login/
page263
源码
ch0911www.tar
https://download.csdn.net/download/wowocpp/11776207
(稍后补充)