创建 和 配置数据库
1).创建数据库 - webdb
create database webdb default charset utf8 collate utf8_general_ci;
2).Django的数据库配置
在settings.py中配置数据库的信息
DATABASES = {
'default':{
'ENGINE':django.db.backends.sqlites,
'NAME':os.path.join(BASE_DIR,DB.sqlite3),
}
}
1.ENGINE:指定要连接的数据库的驱动程序
连接MYSQL的话可以取值为:
'django.db.backends.mysql'
2.NAME:指定要连接到的数据库的名称
连接mysql的话可以取值为:
数据库名
3.USER:指定登录到数据库管理系统的用户名
连接到mysql的话,可以为:root
4.PASSWORD:指定登录到数据库管理系统的密码
5.HOST:指定要连接到的主机地址
如果是本机的话:127.0.0.1或localhost
6.PORT:指定端口号
mysql的默认为3306
示例:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'webdb',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': 3306,
}
}
3).编写models
在创建的app下的models中编写(不要忘记将app添加到seeting.py中的
INSTALLED_APPS 中)
1.Models的语法规范
class ClassName(models.Model):
属性 = models.FIELDYPE(FIELD_OPTIONS)
FIELDTYPE : 字段类型
CharField()
FIELD_OPTIONS:字段选项(字段说明)
max_length=30
2. 常见的字段名和字段选项
字段类型 FIELDTYPE
1.BooleanField()
编程语言中使用true 或 false 来表示该列的值
数据库中使用1 或0 来表示具体的值
数据类型为:tinyint
2.CharField()
编程语言中使用字符串来表示该列的值
数据库中也是字符串
数据类型为:varchar
注意:必须要指定max_length参数值
3.DateField()
编程语言中使用字符串或者Date类型的数据表示该值
数据库中使用的是时间字符串
数据类型为;date
4.DateTimeField()
数据类型为:datetime
5.DecimalField()
编程语言中使用数字(小数)来表示该列的值
数据库中使用小数表示
数据类型:decimal
money = models.DecimalField(max_digits=7,decimal_places=2)
6.FloatField()
编程语言中使用数字(小数)来表示该列的值
数据库使用小数
数据类型:float
7.IntegerField()
数据类型:int
8.EmailField()
编程语言中使用字符串来表示一段email地址
数据库中使用字符串表示
数据类型:varchar
9.URLField()
编程语言中使用字符串来表示一段网址
数据库中使用字符串表示
数据类型:varchar
10.ImageField()
目的:存储图片的路径
数据类型:varchar
image = models.ImageField(upload_to='images/')
字段选项:FIELD_OPTIONS
1.default
作用:为当前字段指定默认值
2.null
作用:指定当前字段是否为空,默认值为False,不能为空
3.db_index
作用:指定是否为当前指定索引
4.db_column
作用:指定当前属性映射到表中的类名,如果不指定则采用属性名称作为类名
示例:
# 创建一个实体类 - Publisher(出版社)
# 1.name : 出版社名称(varchar(30))
# 2.address: 出版社所在地址(varchar(200))
# 3.city:出版社所在的城市(varchar(50))
# 4.country:出版社所在的国家(varchar(50))
# 5.website:出版社的网址(varchar(200))
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=200)
city = models.CharField(max_length=50)
country = models.CharField(max_length=50)
website = models.URLField()
4) 将数据同步回数据库
先后执行第1 步和第2 步
1. ./manage.py makemigrations
作用:将每个应用下的modeles.py文件生成一个数据库的中间文件,并将中间文件保存
到migrations的目录中
2. /manage.py migrate
作用:将每个应用下的migrations目录中的中间文件同步到数据库中