Django中的数据库——mysql

本文介绍了如何在Django项目中使用MySQL数据库,包括在settings.py中配置数据库、创建Django应用、创建模型并进行数据库迁移的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.mysql

(1)#创建一个django项目

django-admin startproject myproject(自定义的项目名)

在这里插入图片描述
(2)用mysql 的话需要在 项目的setting.py中进行配置
在这里插入图片描述

DATABASES = {
	
	'default': {
				
	#连接mysql
	'ENGINE': 'django.db.backends.mysql',
	
	#数据库名称
	'NAME': 's2',
	
	#数据库用户
	'USER':'root',
	
	#密码
	'PASSWORD':'mysql',
	
	#ip 不填默认localhost
	'HOST':'',
	
	#端口 不填 默认就是3306
	'PORT':'',
	
	#数据库配置
	#自动提交
	'OPTIONS':{'autocommit':True}
	
	}

}

注意:数据库必须提前建好

(3)然后在主项目的__init__.py文件下
在这里插入图片描述

#导包

import pymysql

#进行初始化

pymysql.install_as_MySQLdb()

(4)创建一个子应用
进入到django项目的根目录下

cd myproject
python manage.py startapp myapp(自定义的子应用)

在这里插入图片描述

(5)创建完app后在setting.py中把你的app添加在配置文件中
如图:
在这里插入图片描述
(6)在命令行中迁移django自带的表

python manage.py migrate

在这里插入图片描述

(7)打开app下面的models.py进行创建表

一、字段
	1、models.AutoField  自增列= int(11)
	  如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将	给列设置为主键 primary_key=True。
	2、models.CharField  字符串字段
	  必须 max_length 参数
	3、models.BooleanField  布尔类型=tinyint(1)
	  不能为空,Blank=True
	4、models.ComaSeparatedIntegerField  用逗号分割的数字=varchar
	  继承CharField,所以必须 max_lenght 参数
	5、models.DateField  日期类型 date
	  对于参数,auto_now =True则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。
	6、models.DateTimeField  日期类型 datetime
	  同DateField的参数
	7、models.Decimal  十进制小数类型= decimal
	  必须指定整数位max_digits和小数位decimal_places
	8、models.EmailField  字符串类型(正则表达式邮箱)=varchar
	  对字符串进行正则表达式
	9、models.FloatField  浮点类型= double
	10、models.IntegerField  整形
	11、models.BigIntegerField  长整形
	  integer_field_ranges ={
	    ‘SmallIntegerField’?-32768,32767),
	    ‘IntegerField’?-2147483648,2147483647),
	    ‘BigIntegerField’?-9223372036854775808,9223372036854775807),
	    ‘PositiveSmallIntegerField’:(0,32767),
	    ‘PositiveIntegerField’:(0,2147483647),
	  }
	12、models.IPAddressField  字符串类型(ip4正则表达式)
	13、models.GenericIPAddressField  字符串类型(ip4和ip6是可选的)
	  参数protocol可以是:both、ipv4、ipv6
	  验证时,会根据设置报错
	14、models.NullBooleanField  允许为空的布尔类型
	15、models.PositiveIntegerFiel  正Integer
	16、models.PositiveSmallIntegerField  正smallInteger
	17、models.SlugField  减号、下划线、字母、数字
	18、models.SmallIntegerField  数字
	  数据库中的字段有:tinyint、smallint、int、bigint
	19、models.TextField  字符串=longtext
	20、models.TimeField  时间 HH:MM[:ss[.uuuuuu]]
	21、models.URLField  字符串,地址正则表达式
	22、models.BinaryField  二进制
	23、models.ImageField图片
	24、models.FilePathField文件
二、字段参数
	1、null=True
	  数据库中字段是否可以为空
	2、blank=True
	  django的 Admin 中添加数据时是否可允许空值
	3、primary_key = False
	  主键,对AutoField设置主键后,就会代替原来的自增 id 列
	4、auto_now 和 auto_now_add
	  auto_now 自动创建—无论添加或修改,都是当前操作的时间
	  auto_now_add 自动创建—永远是创建时的时间
	5、choices
	GENDER_CHOICE = (
	(u’M’, u’Male’),
	(u’F’, u’Female’),
	)
	gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
	6、max_length
	7、default  默认值
	8、verbose_name  Admin中字段的显示名称
	9、name|db_column  数据库中的字段名称
	10、unique=True  不允许重复
	11、db_index = True  数据库索引
	12、editable=True  在Admin里是否可编辑
	13、error_messages=None  错误提示
	14、auto_created=False  自动创建
	15、help_text  在Admin中提示帮助信息
	16、validators=[]
	17、upload-to

在这里插入图片描述
(8)开始迁移表

python manage.py makemigrations

在这里插入图片描述

python manage.py migrate

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值