数据库概述与配置

2022-09-14 17:28:44 浏览数 (1)

一、ORM

  • 概念 全称Object Relational Mapping,中文叫做对象关系映射 Django提供了各种数据库的支持,为了大多数数据库提供了统一的接口。可以根据不同的业务请求使用不用的数据库
  • 作用 通过ORM我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句
  • 任务 根据对象的类型生成表结构 将对象、列表的操作,转换为sql语句
  • 优点 易用性:使用ORM做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰 性能损耗小:ORM转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这种性能损耗很少(不足5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显 设计灵活:可以轻松的写出复杂的查询 可移植性:封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的MySQLPostgreSQLSQLite。可以非常轻松的切换数据库
  • 图解

二、配置数据库

注意

默认使用的是sqlite数据库

配置流程

配置sqlite数据库代码为

代码语言:javascript复制
DATABASES = {
    <span class="hljs-string">'default'</span>: {
        <span class="hljs-string">'ENGINE'</span>: <span class="hljs-string">'django.db.backends.sqlite3'</span>, <span class="hljs-comment"># 选择数据库引擎</span>
        <span class="hljs-string">'NAME'</span>: os.path.join(BASE_DIR, <span class="hljs-string">'db.sqlite3'</span>), <span class="hljs-comment"># 创建sqlite数据库文件位置</span>
    }
}

配置mysql数据库

代码语言:javascript复制
DATABASES = {
    <span class="hljs-string">'default'</span>: {
        <span class="hljs-string">'ENGINE'</span>: <span class="hljs-string">'django.db.backends.mysql'</span>, <span class="hljs-comment"># 选择数据库引擎</span>
        <span class="hljs-string">'NAME'</span>: <span class="hljs-string">'lucky'</span>, <span class="hljs-comment">#数据库名称</span>
        <span class="hljs-string">'HOST'</span>: <span class="hljs-string">'127.0.0.1'</span>, <span class="hljs-comment">#主机</span>
        <span class="hljs-string">'USER'</span>: <span class="hljs-string">'lucky'</span>, <span class="hljs-comment">#用户名</span>
        <span class="hljs-string">'PASSWORD'</span>: <span class="hljs-string">'123456'</span>, <span class="hljs-comment">#密码</span>
        <span class="hljs-string">'PORT'</span>: <span class="hljs-number">3306</span>, <span class="hljs-comment">#端口</span>
    }
}

安装pymysql扩展库

代码语言:javascript复制
pip3 install pymysql

在project的init.py文件中 添加如下代码

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

代码语言:javascript复制
<span class="hljs-keyword">import</span> pymysql
pymysql.install_as_MySQLdb()

三、表分析

  • 需求 创建用户表
  • 用户表所需字段 用户名 密码 性别 年龄 个人简介 头像 是否删除
  • 创建模型代码位置 App->models.py
  • 模型、属性、表之间的关联 一个模型类对应数据库中的一张表,一个类属性对应表中的一个字段

0 人点赞