day18-django ORM创建基本类和生成数据库结构
一、引子
今天开始学习django ORM,的使用,ORM 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
创建类步骤:
- 根据类自动创建数据库表
- 根据类对数据表中的数据进行各种操作
by the way:code first ,就是指先有代码,然后通过代码生成数据库表结构,通过类去操作数据库中的数据。
db first, 上回作业中我们直接使用的 pymysql ,先在数据库中,创建数据库,数据库表结构,先有数据库-数据库表结构等等,然后在去操作数据库数据。
二、创建基本的类
说明:链接数据库环境,django 自带sqlite3,我们这里要以MySQL为例子。需要先对环境做一些配置。
环境配置
1.修改数据库引擎,settings
管方文档:https://docs.djangoproject.com/en/2.0/ref/settings/#databases
1 DATABASES = { 2 'default': { #默认使用的数据库 3 'ENGINE': 'django.db.backends.mysql', # 使用mysql 4 'NAME': 'pyday18', #数据库名称,需要先手动创建数据库 5 'USER': 'root', #链接数据库用户名 6 'PASSWORD': 'cdw123',#链接数据库密码 7 'HOST': '192.168.90.203', #数据库服务器ip 8 'PORT': '3306', #数据库端口 9 } 10 }
2、注册app
说明:如果想要通过python manage.py makemigrations 找到我们所有的models,然后通过python manage.py migrate帮我生成数据库表,就必须先 注册app。这个在 project.settings.py里面install app中设置。

这个加上的话,这样的话django就回去app01里面去找你的modles.py。
3、因为我们使用的python3,django链接数据默认使用mysqldb ,在python 3中不支持,需要在 project /init 做些设置

三、来吧开搞
说明:上面几个基本的需要设置的环境都搞好了,如果使用其它数据,可能有其它需要注意的设置,请参考官方文档。
3.1,创建类,必须继承models.Model
1 #生成表名 app名_userinfo,例如app名叫 app01,则表名:app01_userinfo, 2 #可以自己指定表明,后面会介绍 3 class Userinfo(models.Model): 4 5 #django ,默认会自动创建 id 字段,并且自增 6 7 #c创建字段格式, 8 #字段名,=字段数据类型,长度限制等其它。。。(后面会介绍更多) 9 username=models.CharField(max_length=32) 10 passwd=models.CharField(max_length=32)
3.2,类创建好了,怎么在数据库中生成呢?

a,在命令行窗口下, python manage.py makemigrations---python manage.py migrate 这样数据表结构,就在数据创建了。
b,在migrations 下会生成一个文件记录表结构修改的信息。


浙公网安备 33010602011771号