基本的配置已经完成了,来看看最重要的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()函数是注销

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

django 简单会议室预约(4)的更多相关文章

  1. django 简单会议室预约(6)

    后台完了现在来看前端,前端用了一个bootstrap框架,看起来能好看点 先看一下文件结构:在djapp里创建了两个文件夹templates和static templates里面是要显示的页面,sta ...

  2. django 简单会议室预约(5)

    再来看看views.py的后半部分,对数据库的增删改查 #获取学院列表 def get_acad_list(): room_list = ConfeRoom.objects.all() #对数据库的操 ...

  3. django 简单会议室预约(2)

    --我们先打开settings.py 配置文件: import os #指明django APP目录路径 BASE_DIR = os.path.dirname(os.path.dirname(os.p ...

  4. django 简单会议室预约(1)

    django 是python的一个web框架,为什么要用django,作者之前用过另一个框架flask,虽然flask比较简单很容易让人学,但是flask没有整体感,会让初学着茫然. 这里我们用dja ...

  5. django 简单会议室预约(3)

    URL配置: 今天配置一下URL,打开urls.py配置如下: from django.conf.urls import patterns, include, url from djapp impor ...

  6. DJango简单的后台定义登录验证

    第一步创建一个新的项目 APPLICATIONNAME : 表示创建子项目 第二步:找到主项目的url 进行 include 分发式url 简单的说,就是将app里边的url放在这里. 这里也可以找到 ...

  7. 基于django的会议室预订系统

    会议室预订系统 一.目标及业务流程 期望效果: 业务流程: 用户注册 用户登录 预订会议室 退订会议室 选择日期:今日以及以后日期 二.表结构设计和生成 1.models.py(用户继承Abstrac ...

  8. Django简单的数据库操作

    当然,本篇的前提是你已经配置好了相关的环境,这里就不详细介绍. 一. 在settings.py文件中设置数据库属性. 如下: DATABASES = { 'default': { 'ENGINE': ...

  9. 循序渐进Python3(十二) --2--  web框架之django简单实现oracle数据库操作

    在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接.             产能在软 ...

随机推荐

  1. 在Windows上如何安装和彻底卸载Adobe Flash Player教程

    很多小伙伴在安装水晶易表的时候,经常会遇到“Xcelsius2008需要使用Adobe Flash Player(9.151或者更高版本)”报错问题,如下图所示. 导致安装进程受阻,此时就需要安装高版 ...

  2. 网络爬虫与web之间的访问授权协议——Robots

    网站的管理者们通常会有这样一种心态:一方面期待百度.Google这样的搜索引擎来抓取网站的内容,另一方面又很厌恶其他来路不明的网络爬虫抓取自己的信息.正是因为这样,才有“好爬虫”.“坏爬虫”这样的说法 ...

  3. javaScript [[scope]]学习笔记

    在javaScript 学习中,闭包肯定是一个让人头疼的问题,而闭包必定离不开[[scope]]作用域 scope存储了执行期上下文的集合 而了解scope以及scope链又是一个十分抽象的问题 我们 ...

  4. 推荐《机器学习实战:基于Scikit-Learn和TensorFlow》高清中英文PDF+源代码

    探索机器学习,使用Scikit-Learn全程跟踪一个机器学习项目的例子:探索各种训练模型:使用TensorFlow库构建和训练神经网络,深入神经网络架构,包括卷积神经网络.循环神经网络和深度强化学习 ...

  5. @MapperScan 和 @ComponentScan 区别

    1.首先@MapperScan和@ComponentScan都是扫描包 2.@ComponentScan是组件扫描注解,用来扫描@Controller  @Service  @Repository这类 ...

  6. AI:OPENCV实现人脸的自动识别

    依赖jar包: faceRecognition.java package opencv; import java.awt.Graphics; import java.awt.image.Buffere ...

  7. 使用DbUtils实现增删改查——ResultSetHandler 接口的实现类

    在上一篇文章中<使用DbUtils实现增删改查>,发现运行runner.query()这行代码时.须要自己去处理查询到的结果集,比較麻烦.这行代码的原型是: public Object q ...

  8. Top 16 Java 应用类 - 这些功能再也不用自己写了

    Java中有很多应用类.这些类定义静态方法能够解决非常多常见的问题.以下是通过5万个开源项目统计得到的最热门的16个应用类. 类按热门程序排列.类的方法也是按热门程序排序. 浏览这个类能够看看有哪些功 ...

  9. 安装个wampserver 环境 执行php

    php代码执行要有相关环境. 在这里推荐一个环境工具.wampserver :内置了下面工具: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5 ...

  10. PostgreSQL递归查询实现树状结构查询

    在Postgresql的使用过程中发现了一个非常有意思的功能,就是对于须要相似于树状结构的结果能够使用递归查询实现.比方说我们经常使用的公司部门这样的数据结构.一般我们设计表结构的时候都是相似以下的S ...