一、前言
从今天开始我们学习DjangoORM的使用,ORM,顾名思义是 关系对象映射,从今天开始我们来学习一下 django的ORM创建基本类,以及生成数据结构。创建类步骤:
- 根据类自动创建数据库表
- 根据类对数据表中的数据进行各种操作
二、创建基本类
2.1、创建基本类
说明:在app的modles.py里面创建基本类,这些类必须继承modles.Model作为父类。注意了,这个modles.py不能更名,这个是django规定好的。
from django.db import models
# Create your models here.
#生成表名 app名_userinfo,例如app名叫 app01,则表名:app01_userinfo
class UserInfo(models.Model):
#id是django默认帮你创建,然后默认是主键,自增长
#列名 ,字符串类型,指定字符串的长度为32
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
2.2、注册app
说明:如果想要通过python manage.py makemigrations 找到我们所有的models,然后通过python manage.py migrate帮我生成数据库表,就必须先注册app。这个在 project.settings.py里面install app中设置。
这个加上的话,这样的话django就回去app01里面去找你的modles.py。
三、生成数据库结构
3.1、生成初始化文件
说明:我们在生成表结构之前,先要生成初始化文件,需要执行 python manage.py makemigrations,去找我们注册号的app01。
python manage.py makemigrations # python manage.py makemigrations app01 初始化某个app的文件
这个需要在终端执行:
执行完毕了之后会在app01的makemigrations生成一个0001_initial.py文件,这个文件记录着你生成数据库表结构的一些记录。
3.2、生成数据库结构
说明:然后我们执行python manage.py migrate,把这个记录生成数据库表结构。
python manage.py migrate
如图:
四、更改数据库
django默认使用的数据库是sqlite3,如果你想改成mysql或者其他数据库的话,需要则在project的settings.py文件中修改DATABASES.
这个通过 https://docs.djangoproject.com/en/2.0/ref/settings/#databases说明改成:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase', #注意了,这个数据库名django不能创建,你自己需要先创建数据库
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
这边用mysql数据库的时候注意了 :
django默认使用MySQLdb模块连接mysql。但是在python3中没有这个模块只有python2中有这个模块,python3只有pymysql模块,所以我们需要主动修改为pymsql:
在project同名文件下的__init__.py文件中添加如下代码即可:
import pymysql
pymysql.install_as_MySQLdb()
如图:
当然初始化这个python3,是没有的,需要自己安装,安装如下:
pip install pymysql