django 简单会议室预约(4)

基本的配置已经完成了,来看看最重要的views.py

先看看简单的注册登录功能,在django里有一个专门的模块用来验证用户信息 ;所以只需要调用就好了:

#-*-coding:utf-8 -*-
from django.shortcuts import  render_to_response
from django.template import  RequestContext
from django.http import HttpResponseRedirect
from django.contrib.auth.models import User #django 自带后台管理模块
from django.contrib import auth
from models import *
#主页
def index(req):	
	username=req.session.get('username', '')
	content = {'active_menu': 'homepage', 'user': username}
	return render_to_response('index.html', content)#将数据返回到前台
#注册
def regist(req):
 	if req.session.get('username', ''):#获取session用来判断用户是否登录
		 return HttpResponseRedirect('/')
	status=""
	if req.POST:
		username = req.POST.get("username","") #从前台获得用户注册信息,判断,存入数据库
		if User.objects.filter(username=username):
			status = "user_exist"
		else:
			password=req.POST.get("password","")
			repassword = req.POST.get("repassword","")
			if password!=repassword:
				status = "re_err"
			else:
				newuser=User.objects.create_user(username=username,password=password)
				newuser.save()							   
				new_myuser = MyUser(user=newuser,phone=req.POST.get("phone"))	 
 				new_myuser.save()
				status = "success"
				return HttpResponseRedirect("/login/")
	return render_to_response("regist.html",{"active_menu":"hompage","status":status,"user":""},context_instance=RequestContext(req))
#登录
def login(req):
	if req.session.get('username', ''):
		return HttpResponseRedirect('/')
	status=""
	if req.POST:
		username=req.POST.get("username","")
		password=req.POST.get("password","")
		user = auth.authenticate(username=username,password=password) 
		if user is not None:
				auth.login(req,user)		
				req.session["username"]=username #保存登录会话	
				return HttpResponseRedirect('/')
		else:
			status="not_exist_or_passwd_err"
	return render_to_response("login.html",{"status":status},context_instance=RequestContext(req))
#退出登录
def logout(req):
	auth.logout(req)
	return HttpResponseRedirect('/')

注册、登录是对数据库的基本增、查;而django提供了高级API

使用filter()方法来过滤数据,判断用户名是否在数据库中:

User.objects.filter(username=username)  

相当于SQL语句:

SELECT username FROM auth_user WHERE username=username;

使用create_user辅助函数创建用户,只用了username和password两个属性;这里User和MyUser是一对一的关系,用户名和密码直接调用,然后加上用户电话号码

User.objects.create_user(username=username,password=password)  
MyUser(user=newuser,phone=req.POST.get("phone"))    

以上只是表示准备向数据库存的数据,完了后要用.save()才能存到数据库里

相当于SQL语句:

INSERT INTO auth_user(username,password) VALUES ("username","password");

auth的authenticate()函数验证用户名和密码,不用再查数据库:

auth.authenticate(username=username,password=password)    
auth.login(req,user)              #auth的login()函数是登录
auth.logout(req)                     #auth的logout()函数是注销

到此,一个简单的注册登录就完成了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骇客567

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值