一、前言

 从今天开始我们学习DjangoORM的使用,ORM,顾名思义是 关系对象映射,从今天开始我们来学习一下 django的ORM创建基本类,以及生成数据结构。创建类步骤:

  1. 根据类自动创建数据库表
  2. 根据类对数据表中的数据进行各种操作

二、创建基本类

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中设置。

day18-DjangoORM创建基本类以及生成数据库结构

 

 这个加上的话,这样的话django就回去app01里面去找你的modles.py。

三、生成数据库结构

3.1、生成初始化文件

说明:我们在生成表结构之前,先要生成初始化文件,需要执行 python manage.py  makemigrations,去找我们注册号的app01。

python manage.py  makemigrations   # python manage.py makemigrations app01 初始化某个app的文件

这个需要在终端执行:

day18-DjangoORM创建基本类以及生成数据库结构

执行完毕了之后会在app01的makemigrations生成一个0001_initial.py文件,这个文件记录着你生成数据库表结构的一些记录。

day18-DjangoORM创建基本类以及生成数据库结构

3.2、生成数据库结构

说明:然后我们执行python manage.py  migrate,把这个记录生成数据库表结构。

python manage.py  migrate

 如图:

day18-DjangoORM创建基本类以及生成数据库结构

四、更改数据库

django默认使用的数据库是sqlite3,如果你想改成mysql或者其他数据库的话,需要则在project的settings.py文件中修改DATABASES.

day18-DjangoORM创建基本类以及生成数据库结构

 

这个通过 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()

如图:

day18-DjangoORM创建基本类以及生成数据库结构

当然初始化这个python3,是没有的,需要自己安装,安装如下:

pip install pymysql

 

相关文章:

  • 2022-12-23
  • 2021-12-16
  • 2022-12-23
  • 2022-12-23
  • 2021-06-01
  • 2022-12-23
猜你喜欢
  • 2021-11-19
  • 2022-12-23
  • 2021-11-26
  • 2021-10-08
  • 2021-12-12
  • 2022-01-12
  • 2021-11-28
相关资源
相似解决方案