Django+xadmin开发笔记(三) Django通过model去操作数据库

(一)传统的操作数据一般就是1,连接数据库2,创建执行器3,用执行器去执行SQL查询语句,刚需操纵查来的数据,然后关闭数据库。


(二)通过ORM技术,可以让操纵数据库类方法调用一样简单。model.py一般在创建app的时候就生成了,在其目录之下。我们打开model.py,创建一个类,比如UserMessge的类,然后继承model.Model,现在我们来创建数据表的项。比如

nane = models.CharField(max_length=25,null=True,blank=True,default="",verbose_name=u'用户名')

其中,CharFiled为类型,这个类型必须定义max_length参数,verbose_name为别名,注意,如果使用中文的话,记得在开始加上# _*_ coding:UTF-8 _*_ ,这样才不会报错。如果可以为空,这加上null=True,blank=True,defule是默认。如果没有定义主键的话,会自动在数据库中生成一个id字段为主键,这里我申明了object_id为主键,就会系统自动生成主键。可以通过CTRL+左键model,Filed来查看系统提供的多种类型。这里顺便附上mate的知识:

      http://django-chinese-docs-14.readthedocs.io/en/latest/ref/models/options.html。

Django+xadmin开发笔记(三) Django通过model去操作数据库_第1张图片

Django+xadmin开发笔记(三) Django通过model去操作数据库_第2张图片


(三)创建数据表。我们通过tool>run mange.py Task来打来命令行,然后makemigrations message(app的目录),一般会有这个提示,原因是,我们忘记去setting中注册我们的app了,系统肯定找不到,所以我们去setting.py下,Django+xadmin开发笔记(三) Django通过model去操作数据库_第3张图片

找到这个东西,然后添加上我们的message信息,就可以了。然后我们回到命令行重新manage下,输入makemigrations message,如果输入migrate,就可以生成对应的数据表,我们打开naticat去查看下我们的数据表。django已经根据我们的model生成对应的数据表啦,一开始是null的。

Django+xadmin开发笔记(三) Django通过model去操作数据库_第4张图片


(四)通过django的model来查询数据的数据。首先,我们在view.py里引入我们的model类

from .model import UserMessage

之所以加点,说明view和model处于同一个文件夹下。然后我们创建一个变量把数据赋予它,这里我们我们调用model一个默认数据库管理器object,通过调用其方法来查找数据,这里通过all()去查找所有的数据,返回的QuerySet类型的数据,这个类型数据支持for循环。也可以通过filter()来按照条件筛选数据。



(五)取出数据。我们先在naticat里创建一条数据。然后我们在for之前打一个断点。然后stop项目先,再run>debug项目,打开浏览器刷新下页面。我们把鼠标放在all_name上,就可以看到是有内容的,如果是没内容的话是空的列表。如果我们F6来单步调试,我们打开usermessage,打开+号,就可以我们的内容啦。再F6下,console就有显示啦。



(六)存一个值到数据库中去。首先实例化一个UserMessage对象usrmessage,然后给对象赋值,就像类赋值一样。然后调用实例化对象的sava()就好了。超级简单!然后去naticat查看数据表。有没有保存呢

Django+xadmin开发笔记(三) Django通过model去操作数据库_第5张图片

Django+xadmin开发笔记(三) Django通过model去操作数据库_第6张图片


(七)把前段的数据表单数据保存到数据库中去。我们先去前段页面中找到form表单。然后在action中输入我们要提交的url。我们在urls.py里面已经定义了。这里说过问题,我在action=“/login/”就会跑到login/login中,于是我就留空白了。它通过post方法传递给后台。然后我们重新debug下项目,刷新下网页,会发现重新403错误,因为django的安全问题,它不允许我们任意的form就往后台提交,我们现在先在前加上{%csrf_token%}先,这是一种安全机制。


我们把鼠标右键放在reques上点开+号,查看post。

Django+xadmin开发笔记(三) Django通过model去操作数据库_第7张图片

发现前台的数据已经post到后台,它是以键值对的形式出现,和表单中的name是对应的,它是把表单的name传递过来,那么我们怎么取post中的数据,然后存到后台呢。这里我们首先通过request的method方法来判断传递过来的是post还是get,如果是post的话,我们通过get方法去取request中post的数值,然后把数值赋予UserMessage的实例就好。

最后save()就好。

Django+xadmin开发笔记(三) Django通过model去操作数据库_第8张图片

其中get的第二个参数是第一个参数不存在时的默认数值。现在我们重新debug我们的项目,刷新下我们的浏览器网页,然后输入表单信息,找了之后我们去naticat中查看我们的数据表的数据。

Django+xadmin开发笔记(三) Django通过model去操作数据库_第9张图片

(八)数据库的删除。通过delete函数就可以把符合该条件的数据全部删除。


或者通过for来删除单条。


你可能感兴趣的:(python学习笔记)