django--ORM入门到精通

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django--ORM入门到精通相关的知识,希望对你有一定的参考价值。


一,Django ORM 与原生SQL对比

ORM:  
  优点:
    1.简单,不用自己SQL语句
    2.开发效率高
  缺点:
    1.记忆你这个特殊的语法
    2. 相对于大神的SQL语句,肯定执行效率有差距
  


二、ORM的对应关系

ORM的对应关系:
    类        --->    数据表
    对象      --->    数据行
    属性      --->    字段


三、ORM能做的事儿

ORM能做的事儿:
    1.操作数据表    --->    创建表、删除表、修改表
    2.操作数据行    --->    数据的增、删、改、查
    
    注意事项:不能创建数据库、自己动手创建数据库


四、自己动手手动创建数据库

1. 修改django项目中settings.py 中数据库连接类型:

create database dbs11;


2. 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)

#数据库相关配置
DATABASES = {
    'default':{
        #连接的数据库类型
        'ENGINE':'django.db.backends.mysql',
        #连接数据库的地址
        'HOST':'127.0.0.1',
        #数据库端口
        'PORT':3306,
        #连接数据库的名称
        'NAME':"dbs11",
        #连接数据库的用户名
        'USER':'root',
        #连接数据库的密码
        'PASSWORD':'123456'
    }
}


3.告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库

    在项目目录中__init__.py文件中导入MySQL连接配置文件

import pymysql

#告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()


4.在项目如(app)下面的models.py 文件中定义一个类,这个类必须继承models.Model

from django.db import models

#ORM相关的只能写在这个文件里,写到别的文件里Django找不到
##例如:

class UserInfo(models,Model):
    id = models.AutoField(primary_key=True)    #创建一个自增的主键字段
    name = models.CharField(null=False,max_length=16)    #创建一个varchar类型的字段不能为空


5.执行两个命令

python3 manage.py makemigrations
python3 manage.py migrate


以上是关于django--ORM入门到精通的主要内容,如果未能解决你的问题,请参考以下文章

Atom编辑器入门到精通 Atom使用进阶

Atom编辑器入门到精通 Atom使用进阶

Atom编辑器入门到精通 Atom使用进阶

shader从入门到精通——Shader的组织形式

词云可视化:四行代码从入门到精通

Jenkins持续集成入门到精通(进阶篇)