Django 模型层选择数据库类型、创建一个表

一、ORM介绍

1.什么是ORM

  • ORM 全拼Object-Relation Mapping.
  • 中文意为 对象-关系映射.
  • 在MVC/MVT设计模式中的Model模块中都包括ORM
2.ORM优势

(1)只需要面向对象编程, 不需要面向数据库编写代码.

  • 对数据库的操作都转化成对类属性和方法的操作.
  • 不用编写各种数据库的sql语句.

(2)实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.

  • 不在关注用的是mysql、oracle...等.
  • 通过简单的配置就可以轻松更换数据库, 而不需要修改代码.
3.ORM劣势
  • 相比较直接使用SQL语句操作数据库,有性能损失.
  • 根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失.
4.ORM和数据库关系:
  • 在Django中model是你数据的单一、明确的信息来源。它包含了你存储的数据的重要字段和行为。通常,一个模型(model)映射到一个数据库表.

基本情况:

  • 每个模型都是一个Python类,它必须继承models.Model类
    django中遵循 Code Frist 的原则,即:先创建类,根据代码中定义的类来自动生成数据库表。
    模型的每个属性都代表一个数据库字段。
    综上所述,Django为您提供了一个自动生成的数据库访问API。
对象-关系映射

二、创建一个简单的表

1 选择数据库类型

  • Django默认自带sqllite的数据库驱动,默认使用sqllite的数据库,可在project文件下的settings.py中修改配置

A)sqllte配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

B)mysql配置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'HttpRunner',  # 新建数据库名,创建的表都在这下面
            'USER': 'root',  # 数据库登录名
            'PASSWORD': 'Hst888888',  # 数据库登录密码
            'HOST': '192.168.91.45',  # 数据库所在服务器ip地址
            'PORT': '3306',  # 监听端口 默认3306即可
        }
    }

C)注意事项
django默认导入的驱动是MySQLdb模块【适用于python2】
python3需要的驱动是pymysql,我们需要在项目名文件下的init_.py(settings.py同级的文件)中添加如下代码:

 import pymysql
   pymysql.install_as_Mysqldb()

以上代码就是告诉python使用pymysql,不要使用MySQLdb

2 注册应用

 INSTALLED_APPS = [
            'django.contrib.admin',
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.messages',
            'django.contrib.staticfiles',
            'app01',#注册APP,上面都是默认值
        ]

3 创建类

在app01/models.py 中写下以下代码:

from django.db import models

#在数据库中创建表名为:app01_userinfo
#Django会自动将应用名称添加在表前面
class UserInfo(models.Model):#创建的类必须继承models.Model
    #当model中如果没有自增列,则自动会创建一个列名为id的主键
    username=models.CharField(max_length=32)
    password=models.CharField(max_length=32)

4 生成数据表

完成以上操作,接下来就是根据models中的类在数据库中生成对应的表

命令行窗口切换到项目根目录执行以下操作:

    python manage.py makemigrations  #在app01/migrations下会生成数据迁移脚本
    python manage.py migrate  #应用到db生成数据表

到这一步一个简单的数据库就创建完成了

你可能感兴趣的:(Django 模型层选择数据库类型、创建一个表)