Python新手使用的Django架站的16堂课 --- 第九章(一)

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

(稍后补充)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值