3-3 Django留言板------ orm 介绍和model设计

1、例子
这里写图片描述
上面的例子是操作数据库的过程,是从数据库中取出书名,这种方式会造成代码重复,形成硬编码,当换成另一种数据库之后需要修改的地方太多,所以我们操作数据库就像操作类一样简单的话就好了,比如取书名book.name,保存书book.save()。所以orm就是这样的机制,将数据库操作映射成对类操作,该机制原理涉及元类知识,可参考流畅的python这本书

2、编写model
推荐资料:the django book
中文版 http://docs.30c.org/djangobook2/
英文版 https://djangobook.com/the-django-book/
Django 1.9官方文档
http://www.h5w3.com/doc/django-docs-1.9-en/
https://docs.djangoproject.com/zh-hans/2.0/topics/db/models/

从留言板功能我们需要存入数据库的有姓名、邮箱、联系地址、留言
这里写图片描述
在model.py中编写model类UserMessage,代码中有中文需要在文件头部加上编码设置
这里写图片描述


class UserMessage(models.Model):
    name = models.CharField(max_length=20, verbose_name=u"用户名")  
      # 最大长度和字段名称
    email = models.EmailField(verbose_name=u"邮箱")
    address = models.CharField(max_length=100, verbose_name=u"联系地址")
    message = models.CharField(max_length=200, verbose_name=u"留言信息")

    class Meta:
        verbose_name = u"用户留言信息"     # 数据表名称

在编写model时,可以按住crtl,并点击model,在按住crtl 并点击Fields查看所有的字段类型,帮助文档的查看
这是快捷键使用,参考https://blog.csdn.net/f1ngf1ngy1ng/article/details/80786864
这里写图片描述
这里写图片描述
这里写图片描述

最好去对应版本的官方文档查看,比如查看model的类型和参数
http://www.h5w3.com/doc/django-docs-1.9-en/topics/db/models.html
这里写图片描述

这里写图片描述
3、通过model生成数据表
可以点击Tools–>Run Manage.py Task,执行makemigrations message
也可以直接点击Terminal(如下图),执行python manage.py makemigrations message
这里写图片描述
但是报错了,划线部分表示没有安装apps,那么我们需要在settings中注册app,每次新建app之后都需要注册到settings中
这里写图片描述

执行python manage.py makemigrations message,相当于在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py,可以查看0001_initial.py, 但是这个改动还没有作用到数据库文件
这里写图片描述
在此之后执行python manager.py migrate,将该改动作用到数据库文件
这里写图片描述
通过Navicat Premium查看数据库,多了一张表message_usermessage,结构是app名称_类名
这里写图片描述
点击打开该表,我们写的字段都在里面,id是默认生成的,并且是主键
这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/f1ngf1ngy1ng/article/details/80803341