django mysql 创建表_django中 对Mysql数据库的建表

Django操作Mysql数据库:

1.1 在settings中,配置数据库相关参数,所以无需修改,这里我们看一下:

DATABASES ={'default': {#这里可以指定使用的数据库类型,例如mysql

'ENGINE': 'django.db.backends.mysql','NAME': 'djangomysql','USER':'root','PASSWORD':'******','HOST':'localhost','PORT':'3306','OPTIONS': {'isolation_level': None}

}

}

1.2 编译models.py Django通过自定义python类的形式来定义具体的模型,每个模型的物理存在方式就是一个python的Class,每个模型代表数据库中的一张表,

每个类的实例代表数据库中的一行数据,类中的每个变量代表数据库中的一列字段。Django通过模型,将python代码和数据库操作结合起来,实现对SQL查询语言的封装。

也就是说,你可以不会管理数据库,可以不会SQL语言,你同样能通过python的代码进行数据库的操作。DJango通过ORM对数据库进行操作,下面直接看代码:

from django.db importmodels#Create your models here.

classUserInfo(models.Model):'''创建两个字段,最大长度是32,类型是char'''user= models.CharField(max_length= 32)

pwd= models.CharField(max_length= 32)#这里我们创建了两个字段,分别保存用户的名称和密码。#上面的代码,相当于下面的原生SQL语句。

CREATE TABLE UserInfo ("id"serial NOT NULL PRIMARY KEY,"user" varchar(30) NOT NULL,"pwd" varchar(30) NOT NULL

);

注意:

Django默认自动创建自增主键ID,当然也可以自己指定主键。 上面的SQL语法基于PostgreSQL更多字段和参数.每个字段有一些特有的参数,

例如,CharField 需要 max_length 参数来指定VARCHAR 数据库字段的大小。还有一些适用于所有字段的通用参数。这些参数在文档中有详细定义,

这里我们学习一下最常用的:

<1> CharField

字符串字段, 用于较短的字符串.CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数.

<2> IntegerField

用于保存一个整数.

<3> FloatField

一个浮点数. 必须 提供两个参数:

参数 描述

max_digits 总位数(不包括小数点和符号)

decimal_places 小数位数

举例来说, 要保存最大值为 999 (小数点后保存2位),你要这样定义字段:

models.FloatField(..., max_digits=5, decimal_places=2)

要保存最大值一百万(小数点后保存10位)的话,你要这样定义:

models.FloatField(..., max_digits=19, decimal_places=10)

admin 用一个文本框()表示该字段保存的数据.

<4> AutoField

一个 IntegerField, 添加记录时它会自动增长. 你通常不需要直接使用这个字段;

自定义一个主键:my_id=models.AutoField(primary_key=True)

如果你不指定主键的话,系统会自动添加一个主键字段到你的 model.

<5> BooleanField

A true/false field. admin 用 checkbox 来表示此类字段.

<6> TextField

一个容量很大的文本字段.

admin 用一个 (文本区域)表示该字段数据.(一个多行编辑框).

<7> EmailField

一个带有检查Email合法性的 CharField,不接受 maxlength 参数.

<8> DateField

一个日期字段. 共有下列额外的可选参数:

Argument 描述

auto_now 当对象被保存时,自动将该字段的值设置为当前时间.通常用于表示 "last-modified" 时间戳.

auto_now_add 当对象首次被创建时,自动将该字段的值设置为当前时间.

通常用于表示对象创建时间.(仅仅在admin中有意义...)

<9> DateTimeField

一个日期时间字段. 类似 DateField 支持同样的附加选项.

更多参数

(1)null

如果为True,Django 将用NULL 来在数据库中存储空值。 默认值是 False.

(1)blank

如果为True,该字段允许不填。默认为False。

要注意,这与 null 不同。null纯粹是数据库范畴的,而 blank 是数据验证范畴的。

如果一个字段的blank=True,表单的验证将允许该字段是空值。如果字段的blank=False,该字段就是必填的。

(2)default

字段的默认值。可以是一个值或者可调用对象。如果可调用 ,每有新对象被创建它都会被调用。

(3)primary_key

如果为True,那么这个字段就是模型的主键。如果你没有指定任何一个字段的primary_key=True,

Django 就会自动添加一个IntegerField字段做为主键,所以除非你想覆盖默认的主键行为,

否则没必要设置任何一个字段的primary_key=True。

(4)unique

如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的

(5)choices

由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。如果设置了choices ,默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是choices 中的选项。

在终端创建表 我们需要在pycharm的teminal中通过命令创建数据库的表,有两条命令,分别是:

生成同步数据库的脚本代码

python manage.py makemigrations

通过运行makemigrations 命令,相当于告诉Django,你对模型有改动,并且你想把这些改动保存为一个“迁移”(migration)。

migrations是Django保存模型修改记录的文件,这些文件保存在磁盘上,我们可以打开这个文件看一下,里面保存的都是可读并且可编译的内容,方便我们随时手动修改。

然后同步数据库:

python manage.py migrate

如果你修改了数据库model:

删除app项目中的migrations中的文件

重复上面两步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值