​Django基于ORM方法对数据库的操作

酥酥 发布于 2021-09-18 71 次阅读


Django基于ORM方法对数据库的操作(基本架构与创建数据)

settings中的installed_app中去注册这个app(如果存在)

python manage.py makemigration 将models.py的改动上传到migrations文件夹下

python manage.py migrate 将文件夹下的增量文件传入数据库的migration表中,视作一次改动

以mysql为例对settings.py作如下修改(都是str类型的),默认是sqlite3

ENGINE ‘django db backends. mysql

NAME: helloapp

HOST:127.0.0.1

PORT:3306

USER: root

PASSWORD:Cba4579136

Meta内部类可以改表名(配合db_table)

常用的ORM数据类型:

  • BooleanField:对应数据库类型tinyint(1)

    • 在数据库中为1,0在python中为True False

  • CharField:对应数据库varchar(n)

    • 指定max_length=n

  • DateField:对应数据库date,以下参数多选一

    • auto now:每次保存对象时,自动设置该字段为当前时间(取值True/False)

    • auto now add:当对象第一次被创建时自动设置当前时间(取值:True/False)

    • default:设置当前时间(取值字符串格式时间如’2019-6-1′)

  • DateTimeField

    • 数据库类型 datetime(6)

    • 作用表示日期和时间

    • 参数同 Date Field

  • FloatField

    • 数据库类型 double

    • 编程语言中和数据库中都使用小数表示值

  • Decimal Field

    • 数据库类型 decimal(x,y)

    • 编程语言中使用小数表示该列的值

    • 在数据库中:使用小数

    • 参数max_digits:位数总数,包括小数点后的位数。该值必须大于等于decimal_places

    • decimal_places:小数点后的数字数量

  • Email Field数据库类型 varchar

    • 编程语言和数据库中使用字符串.并不是后台的逻辑监测

  • IntegerField数据库类型:int

    • 编程语言和数据库中使用整数

  • Image Field

    • 数据库类型 varchar(100)

    • 作用在数据库中为了保存图片的路径

    • 编程语言和数据库中使用字符串

  • Text Field

    • 数据库类型 longtext作用表示不定长的字符数据

每次修改models内部的配置需要一次makemigrations与migrate提交修改到数据库,而makemigration与migrate的前提是数据库中需要与app同名的数据库存在pri

数据项字段

  • primary_key设置主键

  • blank表示字段可以为空(不是null是””)

  • null表示字段可以为null

  • default设置默认值

  • db_index为该列增加索引

  • unique表示值必须唯一

  • db_column指定列名,不指定的话属性名作为类名

使用python manage.py shell可以打开shell工具控制数据库创建数据

首先要from appname.models import *

然后使用classname.objects.create(属性1=值1…..)创建一条数据

或者obj1=classname(属性1=值1…)

obj1.属性2=值2

obj1.save()才算提交信息