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()函数是注销
到此,一个简单的注册登录就完成了。
django 简单会议室预约(4)的更多相关文章
- django 简单会议室预约(6)
后台完了现在来看前端,前端用了一个bootstrap框架,看起来能好看点 先看一下文件结构:在djapp里创建了两个文件夹templates和static templates里面是要显示的页面,sta ...
- django 简单会议室预约(5)
再来看看views.py的后半部分,对数据库的增删改查 #获取学院列表 def get_acad_list(): room_list = ConfeRoom.objects.all() #对数据库的操 ...
- django 简单会议室预约(2)
--我们先打开settings.py 配置文件: import os #指明django APP目录路径 BASE_DIR = os.path.dirname(os.path.dirname(os.p ...
- django 简单会议室预约(1)
django 是python的一个web框架,为什么要用django,作者之前用过另一个框架flask,虽然flask比较简单很容易让人学,但是flask没有整体感,会让初学着茫然. 这里我们用dja ...
- django 简单会议室预约(3)
URL配置: 今天配置一下URL,打开urls.py配置如下: from django.conf.urls import patterns, include, url from djapp impor ...
- DJango简单的后台定义登录验证
第一步创建一个新的项目 APPLICATIONNAME : 表示创建子项目 第二步:找到主项目的url 进行 include 分发式url 简单的说,就是将app里边的url放在这里. 这里也可以找到 ...
- 基于django的会议室预订系统
会议室预订系统 一.目标及业务流程 期望效果: 业务流程: 用户注册 用户登录 预订会议室 退订会议室 选择日期:今日以及以后日期 二.表结构设计和生成 1.models.py(用户继承Abstrac ...
- Django简单的数据库操作
当然,本篇的前提是你已经配置好了相关的环境,这里就不详细介绍. 一. 在settings.py文件中设置数据库属性. 如下: DATABASES = { 'default': { 'ENGINE': ...
- 循序渐进Python3(十二) --2-- web框架之django简单实现oracle数据库操作
在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接. 产能在软 ...
随机推荐
- CheckBox:屏蔽setChecked方法对OnCheckedChangeListener的影响
对于CheckBox的OnCheckedChangeListener,有两种情况下会被触发: (1)用户点击了一下CheckBox: (2)代码中调用了setChecked(boolean check ...
- div动态加载页面
div动态加载页面 /* /// method 1 var url="<%=basePath%>/qne.do?p=pessegerCountSet"; $.post( ...
- 记一次 CORS 跨域请求出现 OPTIONS 请求的问题及解决方法
今天前后端在联调接口的时候,发生了跨域请求资源获取不到的问题. 首先说明下跨域问题的由来.引自HTTP 访问控制 的一段话: 当 Web 资源请求由其它域名或端口提供的资源时,会发起跨域 HTTP 请 ...
- tar---打包,解压缩linux的文件和目录
tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在 ...
- 可靠的UDP连接 & MTU MSS
这个网页里面写了: http://blog.csdn.net/plusboy/article/details/1523308 其可靠性必须由上层应用实现.一般都会采用消息重传来实现其可靠性,采用消息重 ...
- mongodb官网文档阅读笔记:write concern
write concern保证了mongodb写操作的级别,不同的write concern设置相应了不同级别的写操作.设置的级别越高.那么写操作的性能的持久化做得越好,可是写性能也就越差. mong ...
- 第一天,Mysql安装,DDL(数据库定义语言),DBA,DML(数据库操纵语言),导入外面的sql文件
把“D:\mysql-5.6.22-winx64\bin”添加到系统环境变量path中了,然后在任意目录可访问mysql等命令,这样如登录等操作就不需要进入MySQL安装目录才好执行! MySQL下载 ...
- 动态规划 LCS,LIS
1.最大连续子序列 dp[i]=max(dp[i-1]+a[i],a[i]) 以i为结尾 2.最大不连续子序列 dp[i]=max(dp[j]+a[i],dp[j]) 3.最大连续递增子序列 if a ...
- js---06函数传参数
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- android-从官网下拉源码(ubuntu)
今天终于成功的从谷歌官网上下载了android 源码.中间折腾了好久,最终总算有所收获 1.下载repo curl https://storage.googleapis.com/git-repo-do ...