目录
Django ORM
连接数据库
使用PyCharm连接数据库
如果不在django中指定要使用的数据库,那么django中默认连接sqlite的数据库 该数据库功能不是很强大,尤其是对日期类型格式的数据,不是很兼容
django连接MySQL的两步配置
在settings文件中配置
DATABASES = { 'default':{ 'ENGINE':'django.db.backemds.mysql', 指定使用MySQL数据库 'NAME':'xxx', 指定MySQL中的指定库 'USER':'root', 用户名 'PASSWORD':'xxxxxx' 连接数据库的密码 'HOST':'127.0.0.1' 默认地址 'PORT':3306, 端口号 'CHARSET':'utf8' 使用的编码格式 } }由于django默认使用的是mysqldb模块来连接数据库 但是改模块不兼容 不推荐使用告诉django使用pymysql模块连接数据库
###在项目名的文件夹找到__init__文件或者在自己定义的应用名文件夹下的__init__都可以指定 import pymysql pymysql.install_as_MySQLdb()
Django orm使用
我们在django中使用orm时,orm并不会帮你自动创建数据库,还是需要我们手动指定一个django项目用一个数据库
ORM对象关系映射
表的创建
在应用名下的models.py中书写模型类
orm中常用字段
AutoField(primary_key = True) 用于设置主键
CharField(max_length = re) 用于设置字符类型的字段,必须要有max_length参数
IntegerField() 用于设置数字类型字段
BigIntergerField() 用于设置可以存放大个的数字类型
DateField() 用于设置日期字段
auto_now:每次修改数据时,都会更新该字段
auto_now_add:只在创建数据的时候 才会自动将创建时间添加 后续不会自动修改
BooleanField(field)
-波尔类型值
在使用该字段存储数据的时候,你只需要传递布尔值
在数据库中会自动变为0/1
TextField(Field) 文本类型,用于存放大字段
EmailField(CharField) 用于存放邮箱
FileField(Field)
-字符串,路径保存在数据库
-参数:
upload_to = "" 上传文件保存的路径
storage = None 存储组件,默认django.core.files.FileSystem
DecimalField(Field)
-10进制小数
-必须设置的参数:
max_digits 小数总长度
decimal_places 小数位长度
orm表创建
在应用名下的models.py中书写模型类
class User(models.Model):
id = model.AutoField(primary_key = Ture) #为表设置主键,在django中 你可以不指定主键字段,rom会自动为你创建id的主键字段
username = model.CharField(max_length=32) #设置username字段
***********************************数据库迁移命令**************************************
1.python.manage.py makemigrations #并不会真正操作数据 只是将记录记录到小本本上
2.python manage.py migrate #将真正的记录同步到数据库中
# 当你第一次执行上面两条命令的时候 django会自动创建很多张表 这些表都是django默认需要用到的表
# 你自己写的模型类所对应的表 表名有固定格式
应用名_表名