zoukankan      html  css  js  c++  java
  • 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")
  • 相关阅读:
    js菜单特效分享(1)
    用泛型的IEqualityComparer接口去重复项 .
    jquery一些有用的插件
    JQuery Tree插件——zTree v3.0 beta 发布
    泛型和linq
    js如何隐藏表格的行与列
    34个漂亮的应用程序后台管理界面
    解决Visual Studio setup cannot run in compatibility mode的错误
    html文本框(input)不保存缓存记录
    第九章:第九章:XML文档集成Axd向导
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8409772.html
Copyright © 2011-2022 走看看