Django1.7中注册、登陆、以及cookie的使用-创新互联

创建项目与应用

创新互联专注于彭水苗族土家族企业网站建设,自适应网站建设,商城开发。彭水苗族土家族网站建设公司,为彭水苗族土家族等地区提供建站服务。全流程按需网站设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

#django-admin.pystartproject myadmin

#cd myadmin

#python manage.py startapp online

Django1.7中注册、登陆、以及cookie的使用

打开myadmin/myadmin/settings.py文件,将应用添加进去:

Django1.7中注册、登陆、以及cookie的使用

设计数据库  

打开myadmin/online/models.py文件,添加如下内容:

from django.db import models

# Create your models here.

class User(models.Model):

    username = models.CharField(max_length=50)

    password = models.CharField(max_length=50)

    def __unicode__(self):

        return self.username

下面进行数据库的同步:

# python manage.py syncdb

Operations toperform:

Apply all migrations: admin, contenttypes,auth, sessions

Runningmigrations:

Applying contenttypes.0001_initial... OK

Applying auth.0001_initial... OK

Applying admin.0001_initial... OK

Applying sessions.0001_initial... OK

You haveinstalled Django's auth system, and don't have any superusers defined.

Would you liketo create one now? (yes/no): yes

Username (leaveblank to use 'root'): root

Email address: 135xxx@qq.com

Password:

Password(again):

Superusercreated successfully.

[root@bogonmyadmin]# python manage.py makemigrations

Migrations for'online':

0001_initial.py:

   - Create model User

[root@bogonmyadmin]# python manage.py migrate

Operations toperform:

Apply all migrations: admin, contenttypes,sessions, auth, online

Runningmigrations:

Applying online.0001_initial... OK

配置URL

打开myadmin/myadmin/urls.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite5.views.home', name='home'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^online/', include('online.urls')),
)

在mysite5/online/目录下创建urls.py文件:

from django.conf.urls import patterns, url
from online import views
urlpatterns = patterns('',
    url(r'^$', views.login, name='login'),
    url(r'^login/$',views.login,name = 'login'),
    url(r'^regist/$',views.regist,name = 'regist'),
    url(r'^index/$',views.index,name = 'index'),
    url(r'^logout/$',views.logout,name = 'logout'),
)

创建视图  

打开myadmin/online/views.py 文件:

#coding=utf-8
from django.shortcuts import render,render_to_response
from django.http import HttpResponse,HttpResponseRedirect
from django.template import RequestContext
from django import forms
from models import User

#表单
class UserForm(forms.Form):
    username = forms.CharField(label='用户名',max_length=100)
    password = forms.CharField(label='密码',widget=forms.PasswordInput())

#注册
def regist(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 HttpResponse('regist success!!')
    else:
        uf = UserForm()
    return render_to_response('regist.html',{'uf':uf}, context_instance=RequestContext(req))

#登陆
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']
            #获取的表单数据与数据库进行比较
            user = User.objects.filter(username__exact = username,password__exact = password)
            if user:
                #比较成功,跳转index
                response = HttpResponseRedirect('/online/index/')
                #将username写入浏览器cookie,失效时间为3600
                response.set_cookie('username',username,3600)
                return response
            else:
                #比较失败,还在login
                return HttpResponseRedirect('/online/login/')
    else:
        uf = UserForm()
    return render_to_response('login.html',{'uf':uf},context_instance=RequestContext(req))

#登陆成功
def index(req):
    username = req.COOKIES.get('username','')
    return render_to_response('index.html' ,{'username':username})

#退出
def logout(req):
    response = HttpResponse('logout !!')
    #清理cookie里保存username
    response.delete_cookie('username')
    return response

这里实现了所有注册,登陆逻辑,中间用到cookie创建,读取,删除操作等。

创建模板

先在mysite5/online/目录下创建templates目录,接着在mysite5/online/templates/目录下创建regist.html 文件:

  

   注册

注册页面:

   {% csrf_token %}

   `uf`.`as_p`

  


登陆

myadmin/online/templates/目录下创建login.html 文件:

  

   登陆

登陆页面:

   {% csrf_token %}

   `uf`.`as_p`

  


注册

myadmin/online/templates/目录下创建index.html 文件:

  

  

welcome `username` !


退出

使用功能

注册

Django1.7中注册、登陆、以及cookie的使用

登陆

Django1.7中注册、登陆、以及cookie的使用

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


分享标题:Django1.7中注册、登陆、以及cookie的使用-创新互联
本文网址:http://myzitong.com/article/jigih.html