一、首先上代码、关于类视图:

 class register(View):
#template_name = "templates/register.html"
def get(self,request):
return render_to_response("register.html")
def post(self,request):
username = request.POST.get("user")
password = request.POST.get("pswd")
emailstr = request.POST.get("email")
if None in [username,password,emailstr]:
return HttpResponseRedirect("/myapp1/register")
else:
password = gethash(password)
gender = request.POST.get("gender")
if gender not in [u"M",u"F"] and gender != None:
return HttpRequestRedirect("/myapp1/register")
userroll = int(request.POST.get("roll"))
if userroll not in [0,1] and userroll != None:
return HttpResponseRedirect("/myapp1/register")
try:
if userroll != None and gender != None:
LoginUser.objects.create(username=username,password=password,emailstr=emailstr,gender=gender,userroll=userroll)
elif userroll == None and gender != None:
LoginUser.objects.create(username=username,password=password,emailstr=emailstr,gender=gender)
else:
LoginUser.objects.create(username=username,password=password,emailstr=emailstr)
except Exception,ex:
print ex
return HttpResponseRedirect("/myapp1/register")
return HttpResponseRedirect("/myapp1/login")

要注意的是在对应urls.py的配置文件应该这么写:

 from django.conf.urls import include, url
from django.contrib import admin
from myapp1 import views urlpatterns = [
# Examples:
# url(r'^$', 'mysite1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)),
#url(r'^captcha/', include(captcha.urls)),
url(r'^myapp1/', include("myapp1.urls")),
#url(r'^register/',views.register.as_view())
]
 from django.conf.urls import include, url
from myapp1 import views
#from myapp1.views import AccountRegister urlpatterns = [
# Examples:
# url(r'^$', 'mysite1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^login/', "myapp1.views.login"),
url(r'^mainpage/', "myapp1.views.main"),
url(r'^verifycode/', "myapp1.views.verify"),
url(r'^update/', "myapp1.views.update"),
url(r'^register/',views.register.as_view()),#注意没有引号没有引号没有引号
]

然后就可以啦,是不是很简单呢!

二、关于数据的更新和删除操作:

 @logincheck.login_need
def update(request):
if request.method != 'POST':
return render_to_response("update.html")
else:
username = request.POST["user"]
password = request.POST["pswd"]
emailstr = request.POST["email"]
gender = request.POST["gender"]
if None in [username,password,emailstr]:
return render_to_response("update.html")
else:
password = gethash(password)
try:
print type(gender)
print repr(gender)
if gender in [u"M",u"F"]:
LoginUser.objects.filter(username=username,password=password,emailstr=emailstr).update(gender=gender)
else:
return render_to_response("update.html")
except Exception,ex:
return render_to_response("update.html")
return HttpResponseRedirect("/myapp1/mainpage?name=%s"%username)

核心代码部分:

 LoginUser.objects.filter(username=username,password=password,emailstr=emailstr).update(gender=gender)

如果是删除就是这样啦:

 LoginUser.objects.filter(username=username,password=password,emailstr=emailstr).delete()

三、关于一些约束条件:

 #1、自增主键:
id = models.AutoField(primary_key=True)
#2、非空
blank=False
#3、唯一
unique=True
#4、默认值:
default= xxx

四、关于选项的数据库字段类型:

 class LoginUser(models.Model):
gender_type = (
(u"F",u"female"),
(u"M",u"male")
)
userroll = models.IntegerField(default=1)
username = models.CharField(max_length=20)
password = models.CharField(max_length=64)
emailstr = models.CharField(max_length=50)
gender = models.CharField(max_length=1,choices=gender_type,default="M")

Django学习笔记第九篇--实战练习五--关于数据的改、删操作、数据库字段属性的设置和类视图的更多相关文章

  1. MyCat 学习笔记 第九篇.数据分片 之 数值分布

    1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考  <MyCat 学习笔记>第六篇. ...

  2. Python学习笔记——基础篇【第五周】——正在表达式(re.match与re.search的区别)

    目录 1.正在表达式 2.正则表达式常用5种操作 3.正则表达式实例 4.re.match与re.search的区别 5.json 和 pickle 1.正则表达式   语法: import re # ...

  3. Python学习笔记——基础篇【第五周】——模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  4. Django学习笔记第一篇--Hello,Django

    一.Django的安装: 1.python虚拟运行的环境的安装以及安装django: sudo pip install virtualenv export VIRTUALENV_DISTRINUTR= ...

  5. Python学习笔记——基础篇【第五周】——算法(4*4的2维数组和冒泡排序)、时间复杂度

    目录 1.算法基础 2.冒泡排序 3.时间复杂度 (1)时间频度 (2)时间复杂度 4.指数时间 5.常数时间 6.对数时间 7.线性时间 1.算法基础  要求:生成一个4*4的2维数组并将其顺时针旋 ...

  6. Python学习笔记——基础篇【第五周】——正则表达式(re)

    目录 1.简介 2.字符匹配 1.简介:就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译 ...

  7. Python学习笔记——基础篇【第五周】——常用模块学习

    模块介绍 本节大纲: 模块介绍 time &datetime模块   (时间模块) random   (随机数模块) os   (系统交互模块) sys shutil   (文件拷贝模块) j ...

  8. Python学习笔记——基础篇【第五周】——random & time & datetime模块

    random模块 随机数 mport random print random.random() print random.randint(1,2) print random.randrange(1,1 ...

  9. Python学习笔记——基础篇【第五周】——os模块和sys模块

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录 ...

随机推荐

  1. mysql 字面值

    mysql 数据库中实现了许多的数据类型.通常我们用的最多的是在建表的时候指定列的数据类型 如:brithday date default '2000-01-01' 那么我们如何给字面值(直接量)指定 ...

  2. IIS攻击与安全加固实例分析

    IIS作为一款流行的Web服务器,在当今互联网环境中占有很大的比重,绝大多数的asp.asp.net网站都运行在它上面.因此,也引来了无数 黑客们关注的目光.目前针对IIS的攻击技术已经非常成熟,而且 ...

  3. Informix ConnetionString Pool Size

    Database=aa;Host=127.0.0.1;Server=ol_svr_custom;Service=9000;Protocol=onsoctcp;UID=informix;Password ...

  4. 又是一年WWDC,暨回想去年之旅——Part III

    前言 无论这篇写到哪里,就以这篇作为结尾,结束这个流水回想系列文了. Computer History Museum 计算机历史博物馆(站点)是在Google旁边,參观Google之前的行程. 记得那 ...

  5. 进程控制函数(1)-getpgid() getpgrp() 获取当前进程的进程组ID

    定义:pid_t getpid(void); 表头文件:#include<unistd.h> 说明:getpid()用来取得目前进程的进程识别码, 许多程序利用取到的此值来建立临时文件, ...

  6. java中==和equals和hashcode的区别详解

    一.相同点 都是用来进行值或对象的比较. 二.不同点 对于“==”而言,对于基本类型(char,byte,short,int,long,float,double,boolean),对比的是值,所以是相 ...

  7. WPF集合

    Dependency Property 依赖属性 http://www.cnblogs.com/HelloMyWorld/archive/2013/02/21/2920149.html Attache ...

  8. C#实例.net_经典例子400个

    一共470多例winform 界面特效的源码. 窗体与界面设计... 9 实例001  带历史信息的菜单    10 实例002  菜单动态合并    12 实例003  像开始菜单一样漂亮的菜单.. ...

  9. 阿里云ecs开启x11图形化桌面

    阿里云帮助文档:https://www.alibabacloud.com/help/zh/faq-detail/41227.htm 安装云服务器 ECS CentOS 7 图形化桌面 以安装 MATE ...

  10. ftp安装和虚拟用户创建

    安装 1.安装 sudo apt-get install vsftpd 2 查看安装结果 安装完毕,检查vsftpd进程是否已启动,可以查看进程或者查看监听端口 ps -eaf|grep vsftpd ...