3-4Django model 的增删改

一、通过Django的model查询数据库中的记录:

1.把model导入view中,代码如下:('点'表示的是model和view是同级目录,也可以不要'点')

from .models import Usermessage  

from model import Usermessage

2.Usermessage是一个类,它有一个默认的数据表管理器“objects”;

 all_messages=Usermessage.objects.all()
#objects.all()取出数据库中的所有数据。
all_message=Usermessage.objects.filter(name='bobby',address='上海')
#objects.filter()是取出满足括号类型的数据。

all()可以将数据库中的所有数据返回给我们(返回给我们所定义的变量all_messages,它是Django的一个内置类型,它是Querset类型,它支持for循环)然后利用for语句:(这样就可以用model取出数据库中的数据)(按F8进行一步步调试)

在pycharm中取出数据表里的数据(代码如下):

def getform(request):
    all_message=Usermessage.obiects.all()    
    for message in all_messages:
        print messag.name

    return render(request,'message_form.html')

二、通过view保存值到数据库中(曾)

1. 实例化对象:user_message=Usermessage()

 user_message=Usermessage()
    user_message.name="tom"
    user_message.message="helloworld"
    user_message.adress="America"
    user_message.email="123@x"
    user_message.object_id="helloworld"
    user_message.save()

2.user_message.save():把数据保存到数据库中,save()是Django model 的一种方法,由于Usermessage继承了Model,所以user_message可以直接调用这种方法。(Usermessage继承了Model的代码如下)

class Usermessage(model.Model):

 

三、取出数据并保存在数据库中(代码如下)

def getform(request):
    if request.method=="POST":#用来判断是post请求还是get请求。
        name=request.POST.get('name','')
        message=request.POST.get('message','')#是Python里面取字典里的数据的一种方法。
        address=request.POST.get('address','')#''表示如果取不到,默认值为空。
        email=request.POST.get('email','')
        user_message=Usermessage()
        user_message.name=name
        user_message.message=message
        user_message.address=address
        user_message.email=email
        user_message.object_id="helloworld3"
        
        user_message.save()

    return render(request,'message_form.html')

用户留言信息页面是一个post的请求。(上面代码意思是完成了表单的提交)

1.action就是URL。(action="/form/")'/form'表示根路径下的form,

2.在form表单提交的时候要加上{% csrf_token %},不然的话会出现forbidden(403)错误。

四、数据库中数据的删除(删)

def getform(request):
    all_message=Usermessage.obiects.filter(name='bobby',address='北京')
    for message in all_messaage:
        message.delate()
#表示删除符合filter括号里类型的数据。

def getform(request):
    all_message=Usermessage.obiects.filter(name='bobby',address='北京')
    all_message.delate()
#表示删除所有数据。
#删除操作是直接对数据库中的数据表里的数据直接进行删除。

 

你可能感兴趣的:(3-4Django model 的增删改)