主页 > 手机  > 

Django模型(一)


一、介绍

模型,就是python中的类对应数据库中的表

1.1、ORM

ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写

ORM 把数据库映射成对象

1.2、示例 1.2.1、模型 from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) 1.2.2、数据库表 CREATE TABLE myapp_person ( "id" bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL );

说明

模型类必须继承models.Model每个属性对应数据库表中的一个字段表名自动使用 应用_类名 的小写(如:polls_question),可以覆盖重写如果模型类中没有指定 primary_key ,那么会自动创建一个 id 字段,自增,主键 二、MySQL数据库迁移 

当编写了模型之后,需要将模型应用到数据库中,具体步骤如下:

创建项目model_study,及子应用model_app

#创建项目 $ django-admin startproject model_study #进入项目目录创建子应用 $ python manage.py startapp model_app

配置应用,将模型对应的应用程序添加到项目的settings中:

INSTALLED_APPS = [ 'model_app' ]

在settings.py中配置正确的数据库连接:

# mysql DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'model_study', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': 3306, } }

注意

需要安装对应数据库的驱动

pip install mysqlclient==2.1.1

pip install pymysql

# __init__.py import pymysql pymysql.install_as_MySQLdb() 需要在mysql数据库中创建数据库model_study 2.1、创建迁移

在项目根目录的cmd中运行:

$ python manage.py makemigrations model_app

备注

model_app是子应用的名称,如果不指定,那么就是对所有 INSTALLED_APPS 中的应用都进行预备迁移指定该命令后,在对应的子应用下的 migrations 中会生成一个对应的迁移文件 2.2、正式迁移

在根目录的cmd中运行:

$ python manage.py migrate

备注

没有添加子应用名,那么就会把django项目中所有的应用都迁移到数据库中

三、sqlite3数据库迁移

当编写了模型之后,需要将模型应用到数据库中,具体步骤如下:

创建项目model_study,及子应用model_app

#创建项目 $ django-admin startproject model_study #进入项目目录创建子应用 $ python manage.py startapp model_app

配置应用,将模型对应的应用程序添加到项目的settings中:

INSTALLED_APPS = [ 'model_app' ]

在settings.py中配置正确的数据库连接:

# sqlite3 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }

注意

需要安装对应数据库的驱动需要在mysql数据库中创建数据库model_study 3.1、创建迁移

在项目根目录的cmd中运行:

$ python manage.py makemigrations model_app

备注

model_app是子应用的名称,如果不指定,那么就是对所有 INSTALLED_APPS 中的应用都进行预备迁移指定该命令后,在对应的子应用下的 migrations 中会生成一个对应的迁移文件 3.2、正式迁移

在根目录的cmd中运行:

$ python manage.py migrate

备注

没有添加子应用名,那么就会把django项目中所有的应用都迁移到数据库中

四、更新数据库表结构

不管是新增模型,还是修改已有模型后,只需要执行行命令即可:

4.1、创建迁移

在项目根目录的cmd中运行:

$ python manage.py makemigrations model_app

备注

model_app是子应用的名称,如果不指定,那么就是对所有 INSTALLED_APPS 中的应用都进行预备迁移指定该命令后,在对应的子应用下的 migrations 中会生成一个对应的迁移文件 4.2、正式迁移

在根目录的cmd中运行:

$ python manage.py migrate

备注

没有添加子应用名,那么就会把django项目中所有的应用都迁移到数据库中

4.3、设置表名

在模型中建立内部类Meta设置db_table即可

# Create your models here. class Person(models.Model): first_name = models.CharField(max_length=10) lname = models.CharField(max_length=30) age = models.CharField(max_length=30) class Meta: db_table = 't_person'

标签:

Django模型(一)由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Django模型(一)