Django 笔记5 – 数据库


Django 系列笔记是笔者学习、实践使用 Django 的相关笔记,大量参考了知了课堂的《Django零基础到项目实战》教程。

参考文档:
Django官方文档(英文)
Django 中文文档


一、配置数据库连接


1、配置数据库

配置 settings.py 文件中的 DATABASES:

DATABASES = {'default': {# 数据库引擎,mysql、oracle等'ENGINE': 'django.db.backends.mysql',# 数据库的名字'NAME': 'django_demo',# 连接mysql数据库的用户名'USER': 'root',# 连接mysql数据库的密码'PASSWORD': '123456',# mysql数据库的主机地址'HOST': '127.0.0.1',# mysql数据库的端口号'PORT': '3306',}
}

2、Django 操作数据库

Django 操作数据库方式:

  • 使用原生 SQL 语句操作
  • 使用 ORM 模型来操作

二、Django 使用原生 SQL 语句


1、SQL 语句操作数据库

# 使用django封装好的connection对象,会自动读取settings.py中数据库的配置信息
from django.db import connection# 获取游标对象
cursor = connection.cursor()
# 拿到游标对象后执行sql语句
cursor.execute("select * from book")
# 获取所有的数据
rows = cursor.fetchall()
# 遍历查询到的数据
for row in rows:print(row)

2、Python DB API

任何使用 Python 来操作 MySQL 的驱动程序都遵循这个规范。所以不管是使用 pymysql 还是是 mysqlclient ,他们的接口都是一样的。

更多操作可参考:MySQL 笔记9 – PyMySQL


三、Django 使用 ORM 模型


1、ORM 模型

  • ORM,全称Object Relational Mapping,中文叫做对象关系映射,通过ORM我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句。通过把表映射成类,把行作实例,把字段作为属性,ORM在执行对象操作的时候最终还是会把对应的操作转换为数据库原生语句
    • ORM模型一般都是放在 app 的 models.py 文件中。每个app都可以拥有自己的模型。并且如果这个模型想要映射到数据库中,那么这个app必须要放在settings.py的INSTALLED_APP中进行安装

2、创建 ORM 模型

  • ORM 模型必须继承自django.db.models.Model
  • ORM 模型映射到数据库中,表名默认是模型名称的小写形式
from django.db import modelsclass User(models.Model):name = models.CharField(max_length=20,null=False)age = models.IntegerField(default=0)birthday = models.DateTimeField(default=datetime.now)

3、映射 ORM 模型到数据库

  • 在命令行终端,进入到项目所在的路径,然后执行命令 python manage.py makemigrations 来生成迁移脚本文件
  • 执行命令 python manage.py migrate来将迁移脚本文件映射到数据库中
  • 如果出错:https://blog.csdn.net/xiaoyaosheng19/article/details/82643729

GOOD LUCK!


Django 笔记5 -- 数据库相关推荐

  1. Django笔记二十八之数据库查询优化汇总

    这一篇笔记将从以下几个方面来介绍 Django 在查询过程中的一些优化操作,有一些是介绍如何获取 Django 查询转化的 sql 语句,有一些是理解 QuerySet 是如何获取数据的. 以下是本篇 ...

  2. Django 笔记6 -- 多表查询

    Django 笔记6 – 多表查询 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Djang ...

  3. Django 笔记3 -- URL

    Django 笔记3 – URL Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Django ...

  4. Django 笔记2 -- Django 项目

    Django 笔记2 – Django 入门 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: ...

  5. Django 笔记1 -- 环境搭建

    Django 笔记1 – 环境搭建 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Djang ...

  6. Django笔记-5-视图

    2019独角兽企业重金招聘Python工程师标准>>> Django笔记-5-视图 概述 作用 视图接受web请求, 并相应web请求; 本质 视图就是一个Python中的函数 相应 ...

  7. Django笔记-实现用户退出登录(logout)

    Django笔记-实现用户的登出 Django logout()方法介绍: 一.登录login(user,request): 将通过认证的用户的唯一标识信息(主键id),通过哈希加密写入到当前sess ...

  8. Django笔记总结

    1.web框架的本质 web通信流程 web我们这里指的就是通过浏览器去访问服务端,请求页面或者数据的通信方式,属于B/S架构.就是我们常见的网站.浏览器与服务端的通信流程:浏览器客户端发送一个请求信 ...

  9. Django笔记十二之defer和only

    本篇笔记将介绍查询中的 defer 和 only 两个函数的用法,笔记目录如下: defer only 1.defer defer 的英语单词的意思是 延迟.推迟,我们可以通过将字段作为参数传入,可以 ...

最新文章

  1. 离开域后打开Office慢 Openfiler
  2. minecraft666java_我的世界的666的世界
  3. 15拆分成3个不同的自然数_15个小时搜救破拆,他磨破3双手套营救出4个生还者...
  4. 【转】Java开发必须要知道的知识体系
  5. 最全的Pycharm debug技巧
  6. web api 权限控制
  7. 教你一种U盘病毒的快速检测方法
  8. 剑指offer面试题[54]-表示数值的字符串
  9. error Microsoft Visual C++ 14.0 is required 解决方案
  10. ArcGIS API for JavaScript与 npm
  11. mysql5.7卸载服务_win10卸载原mysql安装64位mysql5.7并修改root密码
  12. Noark入门之极速体验
  13. 关于fork()父子进程返回值的问题
  14. iphone se卡贴教程
  15. 基本办公软件的使用及技巧:便签篇
  16. html实现波浪,纯CSS实现波浪移动效果的示例
  17. OTFS白皮书-翻译
  18. Linux(二) 常用工具
  19. php 递归删目录和文件,php递归删除目录与文件的方法
  20. [推荐] 经典健康谚语100句

热门文章

  1. sqlserver中用到的一些方法:convert,isnull
  2. Laravel模板事项
  3. NPOI 修改已存在的excel文件,设置第一行行高
  4. 2018-01-17 Antlr4实现简单语言之整数比较表达式
  5. Activiti数据库
  6. Swift - 使用set,get确保索引加减在正常的范围内
  7. HDU 3507 Print Article(斜率优化DP)
  8. XML和JSON两种数据交换格式的比较
  9. 2013年1月31号
  10. OI模板のpoke流[大型考试复习必备/kl]