美文网首页
Django 模型层选择数据库类型、创建一个表

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

作者: 别动我名字呀 | 来源:发表于2019-05-08 23:50 被阅读0次

一、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 项目 创建应用 模型 数据库配置 数据库表的定义 定义模型...

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

    一、ORM介绍 1.什么是ORM ORM 全拼Object-Relation Mapping. 中文意为 对象-关...

  • Django项目的开发二

    1、创建 Django 项目 2、创建应用 3、模型 1、数据库配置 2、数据库表的定义 3、定义模型...

  • Django开发流程

    流程目录: 创建Django项目 创建应用 模型:数据库配置数据库表的定义定义模型类生成数据表 模板 视图 服务器...

  • Python学习打call第五十七天:Django Model

    Django Model 模型 Django Model层是Django的数据模型层,每一个Model类就是数据库...

  • django ORM 操作

    一、DjangoORM 创建基本类型及生成数据库表结构1、简介2、创建数据库 表结构二、Django ORM基本增...

  • django的模型定义

    在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息:当前选择的数据库支持字段的类型渲染管理...

  • Django使用model创建数据库表使用的字段

    Django通过model层不可以创建数据库,但可以创建数据库表,以下是创建表的字段以及表字段的参数。 一、字段 ...

  • 第二阶段 day02 django模型

    模型 通过django在Mysql数据库中创建表1.在应用下的models.py文件中编写数据模型创建简单的学生表...

  • django---一个项目的创建

    让我们先说说开发流程1.创建 Django 项目2.创建应用3.模型4.数据库配置5.数据库表的定义6.定义模型类...

网友评论

      本文标题:Django 模型层选择数据库类型、创建一个表

      本文链接:https://www.haomeiwen.com/subject/pbyboqtx.html