Python网络编程06----django数据库的增删改查

首先定义model如下.

class UserInfo(models.Model):
    username=models.CharField(max_length=50,null=True,primary_key=False,db_index=True) #可以为空,不是主键,创建索引
    password=models.CharField(max_length=50,error_messages={"invalid":"出错"})         #定义出错信息
    gender=models.BooleanField(default=False)
    typeId=models.ForeignKey("UserType")
    createdate=models.DateTimeField(auto_now=True)                                       #自动赋值当前时间

class userType(models.Model):
    TYPE_CHOICE=(                                     #不走数据库,直接在内存里那表
        (u"1",u"普通用户"),
        (u"2",u"高级用户"),
        (u"3",u"管理员")
    )
    type=models.CharField(max_length=2,choices=TYPE_CHOICE)

然后再views.py中定义增删改查的函数,并在urls.py中设置好访问路由。

增加数据

添加数据有两种方式。

def add(request,name):
    User.objects.create(name=name)                        #向数据库中添加name
    return HttpResponse("<h1>{0}<h1/>".format(name))
def add(request,name):
    obj=User(name=name)
    obj.save()
    return HttpResponse("<h1>{0}<h1/>".format(name))

删除数据

删除单条数据

def delete(request,id):
    User.objects.get(id=id).delete()        #删除一条指定id的数据,如果同时存在多条会报错
    return HttpResponse("<h1>已经删除{0}<h1/>".format(id))

删除多条数据

def delete(request,gender):
    User.objects.filter(gender=True).delete()                     #删除所有指定性别的数据
    return HttpResponse("<h1>删除成功<h1/>")

删除所有数据

def delete(request,id):
    User.objects.all().delete()             #删除所有数据
    return HttpResponse("<h1>已经删除<h1/>")

更新数据

更新单条数据

def update(request,id,name):
    obj=User.objects.get(id=id)       #如果获取不到或者获取多条会报错
    obj.name=name
    obj.save()
    return HttpResponse("<h1>{0},{1}<h1/>".format(name, id))

更新多条数据

def update(request,id,name):
    User.objects.filter(id=id).update(name=name) #更新所有指定id的数据
    return HttpResponse("<h1>{0},{1}<h1/>".format(name, id))

查询


def searchAll(request):
    obj=User.objects.all()
    sql=obj.query                           #可以获取对应的sql语句
    data=obj.values()                       #返回包含所有词条的list

    onlyone=User.objects.get(name="wer")   #查询单条数据,如果多条或者没有就会报错
    many=User.objects.filter(name="wer")[0:2]      #查询多条数据,并输出开头两条
    like=User.objects.filter(name__contains="w")   #模糊查询包含1的数据
    gtage=User.objects.filter(age__gt=7)           #查询年龄大于7的数据
    orderName=User.objects.filter(name="wer").order_by("id")     #对查询结果id字段进行排序


    return HttpResponse("<p>{0}<p/><p>{1}<p/><p>{2}<p/>".format(sql, data,orderName.values()))

注意

在数据库操作完成之后,不要忘记更新数据库。控制台命令如下

    python manage.py makemigrations appname
    python manage.py migrate

本文地址:http://blog.csdn.net/a359680405/article/details/51361562
上一篇:Python网络编程05—-django与数据库的交互
下一篇:Python网络编程07—-模版

你可能感兴趣的:(数据库,python,django,网络编程)