ORM:对象关系映射
Django模型元类:https://www.cnblogs.com/lucaq/p/7544909.html
O :object 对象
R: relation 关系
M: mapping 映射
ORM的作用就是把类转成SQL语句、可以把SQL语句转成类
减少开发时间
缺点:效率就会降低
ORM的缺点是会牺牲程序的执行效率和会固定思维模式。
用Pycharm创建项目:
使用MySQL数据库:
1)要在setting.py修改数据库
DATABASES = {
'default': {
'ENGINE':'django.db.backends.mysql',
'NAME':'db_1910',
'USER':'root',
'PASSWORD':'2361559775',
'PORT':'3306',
'HOST':'localhost',
}
}
2)打开终端cmd,登录mysql,手动创建数据库:
create database 数据库名字 charset=utf8;
3)使用mysql 需要安装pymysql
pip install pymysql
如果生成迁移文件出现如下图:
原因没安装pymysql输入:pip install pymysql
4)在项目文件夹下__init__文件中导入:
import pymysql
pymysql.install_as_MySQLdb()
字段类型
1)AutoField:自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性。(必须填入参数primary_key=True)
2)BooleanField:布尔字段,值为True或False。
3)NullBooleanField:支持Null、True、False三种值。
4)CharField(max_length=字符长度):字符串。
参数max_length表示最大字符个数。
5)TextField:大文本字段,一般超过4000个字符时使用。
6)IntegerField:整数。
7)DecimalField(max_digits=None, decimal_places=None):十进制浮点数。
参数max_digits表示总位数。
参数decimal_places表示小数位数。
8)FloatField:浮点数。
9)DateField[auto_now=False, auto_now_add=False]):日期。
参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false。
参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false。
参数auto_now_add和auto_now是相互排斥的,组合将会发生错误。
10)TimeField:时间,参数同DateField。
11)DateTimeField:日期时间,参数同DateField。
12)FileField:上传文件字段。
| 取并集 &取交集 - 取差集
ctrl+r--全局替换---pycharm
网友评论