首页 > 代码库 > django实现注册、登录小系统

django实现注册、登录小系统

1.创建django项目:

命令:django-admin.py startproject todoManager

2.在此项目下创建apps应用

命令:python manage.py startapp apps

目录如下:

技术分享

 

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

技术分享

 

4.打开todoManager/todoManager/settings.py文件,设置连接数据库,以下连接的是MYSQL

技术分享

5.打开todoManager/apps/models.py文件,添加如下内容,创建数据库,创建User表,用户名和密码两个字段。

技术分享

 

6.进行数据库的同步:

查看django版本:输入python ,enter;import django  django.get_version()

我的版本是1.9之前的:在Django1.9之前,数据库同步只需要一条命令,那就是python  manage.py syncdb

技术分享

后生成的 apps_user 表就是我们models.py 中所创建的User类。

7. 配置URL  

7.1 打开todoManager/todoManager/urls.py

 技术分享

7.2 在todoManager/apps/目录下创建urls.py文件:

from django.conf.urls import patterns, url,include
from django.contrib import admin
from apps import views

urlpatterns = patterns(‘‘,
url(r‘^regist/$‘,views.regist,name = ‘regist‘),
url(r‘^login/$‘,views.login,name = ‘login‘),
url(r‘^index/$‘,views.index,name = ‘index‘),
url(r‘^logout/$‘,views.logout,name = ‘logout‘),

)

7.3 创建视图

打开todoManager/apps/views.py 文件:

技术分享
# -*- coding: utf-8 -*-
from django.shortcuts import render

# Create your views here.
#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 apps.models import  User
from pymongo import MongoClient
from django.views.decorators.csrf import csrf_protect, csrf_exempt
 
mongo_client = MongoClient(192.168.86.126, 27017)

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


#注册
# @csrf_protect 
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))

#登陆
# @csrf_protect 
def login(req):
    username = req.COOKIES.get(username,‘‘) 
    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(/apps/index/) 
                #将username写入浏览器cookie,失效时间为3600
                response.set_cookie(username,username,3600)
                return response
            else:
                #比较失败,还在login
                return HttpResponseRedirect(/apps/login/)
    else: 
        uf = UserForm()
    return render_to_response(login.html,{uf:uf}, context_instance=RequestContext(req) )

#登陆成功
# @csrf_protect 
def index(req): 
    username = req.COOKIES.get(username,‘‘) 
    if username:
        key_words_coll = mongo_client[yidong_zixun][key_words]
        categorys = {} 
        tasks = {}
        results = key_words_coll.find().batch_size(30)
        for result in results:
            category_id = result["category_id"]
            category_name = result["category_name"]
            _id = result["_id"]
            name = result["name"]
            if not categorys.has_key(category_id): 
                categorys[category_id] = category_name 
            if not tasks.has_key(category_id):
                tasks[category_id] = []
                tasks[category_id].append({"task_id":_id,"name":name})
            else:
                tasks[category_id].append({"task_id":_id,"name":name}) 
        return render_to_response(index.html ,{username:username,categorys:categorys,"tasks":tasks}, context_instance=RequestContext(req))
    else:
        return HttpResponseRedirect(/apps/login/)  
#退出
# @csrf_protect
def logout(req):
    # response = HttpResponse(‘logout !!‘) 
    response = HttpResponseRedirect(/apps/login/) 
    response.delete_cookie(username) 
    return response
View Code

7.4 创建模板 

先在todoManager/apps/目录下创建templates目录,接着在todoManager/apps/templates/目录下创建base.html、regist.html、login.html 、index.html 文件:

7.5设置模板路径

打开todoManager/todoManager/settings.py文件,在底部添加:

技术分享

 

8.运行django

命令:python manage.py runserver 0.0.0.0:8000

 

技术分享

 

django实现注册、登录小系统