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

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

 1 class register(View):
 2     #template_name = "templates/register.html"
 3     def get(self,request):
 4         return render_to_response("register.html")
 5     def post(self,request):
 6         username = request.POST.get("user")
 7         password = request.POST.get("pswd")
 8         emailstr = request.POST.get("email")
 9         if None in [username,password,emailstr]:
10             return HttpResponseRedirect("/myapp1/register")
11         else:
12             password = gethash(password)
13         gender = request.POST.get("gender")
14         if gender not in [u"M",u"F"] and gender != None:
15             return HttpRequestRedirect("/myapp1/register")
16         userroll = int(request.POST.get("roll"))
17         if userroll not in [0,1] and userroll != None:
18             return HttpResponseRedirect("/myapp1/register")
19         try:
20             if userroll != None and gender != None:
21                 LoginUser.objects.create(username=username,password=password,emailstr=emailstr,gender=gender,userroll=userroll)
22             elif userroll == None and gender != None:
23                 LoginUser.objects.create(username=username,password=password,emailstr=emailstr,gender=gender)
24             else:
25                 LoginUser.objects.create(username=username,password=password,emailstr=emailstr)
26         except Exception,ex:
27             print ex
28             return HttpResponseRedirect("/myapp1/register")
29         return HttpResponseRedirect("/myapp1/login")

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

 1 from django.conf.urls import include, url
 2 from django.contrib import admin
 3 from myapp1 import views 
 4 
 5 urlpatterns = [
 6     # Examples:
 7     # url(r'^$', 'mysite1.views.home', name='home'),
 8     # url(r'^blog/', include('blog.urls')),
 9 
10     url(r'^admin/', include(admin.site.urls)),
11     #url(r'^captcha/', include(captcha.urls)),
12     url(r'^myapp1/', include("myapp1.urls")),
13     #url(r'^register/',views.register.as_view())
14 ]
 1 from django.conf.urls import include, url
 2 from myapp1 import views
 3 #from myapp1.views import AccountRegister
 4 
 5 urlpatterns = [
 6     # Examples:
 7     # url(r'^$', 'mysite1.views.home', name='home'),
 8     # url(r'^blog/', include('blog.urls')),
 9     url(r'^login/', "myapp1.views.login"),
10     url(r'^mainpage/', "myapp1.views.main"),
11     url(r'^verifycode/', "myapp1.views.verify"),
12     url(r'^update/', "myapp1.views.update"),
13     url(r'^register/',views.register.as_view()),#注意没有引号没有引号没有引号
14 ]

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

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

 1 @logincheck.login_need
 2 def update(request):
 3     if request.method != 'POST':
 4         return render_to_response("update.html")
 5     else:
 6         username = request.POST["user"]
 7         password = request.POST["pswd"]
 8         emailstr = request.POST["email"]
 9         gender = request.POST["gender"]
10         if None in [username,password,emailstr]:
11             return render_to_response("update.html")
12         else:
13             password = gethash(password)
14             try:
15                 print type(gender)
16                 print repr(gender)
17                 if gender in [u"M",u"F"]:
18                     LoginUser.objects.filter(username=username,password=password,emailstr=emailstr).update(gender=gender)
19                 else:
20                     return render_to_response("update.html")
21             except Exception,ex:
22                 return render_to_response("update.html")
23             return HttpResponseRedirect("/myapp1/mainpage?name=%s"%username)

核心代码部分:

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

如果是删除就是这样啦:

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

三、关于一些约束条件:

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

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

 1 class LoginUser(models.Model):
 2     gender_type = (
 3         (u"F",u"female"),
 4         (u"M",u"male")
 5     )
 6     userroll = models.IntegerField(default=1)
 7     username = models.CharField(max_length=20)
 8     password = models.CharField(max_length=64)
 9     emailstr = models.CharField(max_length=50)
10     gender = models.CharField(max_length=1,choices=gender_type,default="M")
原文地址:https://www.cnblogs.com/KevinGeorge/p/8409772.html