组团学

数据库概述与配置

阅读 (282694)

一、ORM

  • 概念

    全称Object Relational Mapping,中文叫做对象关系映射

    Django提供了各种数据库的支持,为了大多数数据库提供了统一的接口。可以根据不同的业务请求使用不用的数据库

  • 作用

    通过ORM我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句

  • 任务

    根据对象的类型生成表结构

    将对象、列表的操作,转换为sql语句

  • 优点

    易用性:使用ORM做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰

    性能损耗小:ORM转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这种性能损耗很少(不足5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显

    设计灵活:可以轻松的写出复杂的查询

    可移植性:封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的MySQLPostgreSQLSQLite。可以非常轻松的切换数据库

  • 图解

image20191230104442941.png

二、配置数据库

  • 注意

    默认使用的是sqlite数据库

  • 配置流程

    • 配置sqlite数据库代码为

      DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # 选择数据库引擎 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # 创建sqlite数据库文件位置 } }
    • 配置mysql数据库

      DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 选择数据库引擎 'NAME': 'lucky', #数据库名称 'HOST': '127.0.0.1', #主机 'USER': 'lucky', #用户名 'PASSWORD': '123456', #密码 'PORT': 3306, #端口 } }
    • 安装pymysql扩展库

      pip3 install pymysql
    • 在project的init.py文件中 添加如下代码

      python3.x使用的是pymysql模块,所以需要在project/__init.py文件中添加如上代码

      import pymysql pymysql.install_as_MySQLdb()

三、表分析

  • 需求

    创建用户表

  • 用户表所需字段

    用户名 密码 性别 年龄 个人简介 头像 是否删除

  • 创建模型代码位置

    App->models.py

  • 模型、属性、表之间的关联

    一个模型类对应数据库中的一张表,一个类属性对应表中的一个字段

需要 登录 才可以提问哦