ORM(Object Relational Mapping)

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

你可能感兴趣的:(ORM(Object Relational Mapping))