Python后台开发(第二章: 模型类实现)

本文深入介绍了Django的ORM框架,从数据库配置到模型类的实现,涵盖ORM原理、数据库连接、模型字段、数据库迁移、增删改查操作,以及查询语法、模糊查询、范围查询、Q对象等高级用法,帮助开发者掌握面向对象的数据库操作。
摘要由CSDN通过智能技术生成

1 ORM原理与数据库配置

1.1 模块安装

代码部分:

pip install pymysql pip install mysqlclient

1.2 模块安装常见问题

  • time out 超时解决方案: pip install 包名 --user-i https://pypi.tuna.tsinghua.edu.cn/simple
  • 缺少c ++ 插件解决方案:https://www.jb51.net/article/151033.htm

1.3 Pycharm连接 Mysql

  • 保证pycharm是专业版.
  • 创建mysql连接.

在这里插入图片描述

在这里插入图片描述

  • 测试连接,当出现successful时,说明连接信息无误,可以正常使用pycharm操作mysql数据库.

在这里插入图片描述

  • 连接数据库可能遇到的问题:
pymysql.err.OperationalError: (1045, "Access denied for user'root'\@'localhost' (using password: YES/NO)")    
  • 解决方案: 检查Pycharm使用的账号密码,与cmd下登录Mysql数据库的账号密码是否一致.
unrecognized or represents more than one time zone. You must configureeither the server or JDBC driver (via the serverTimezone configurationproperty) to use a more specifc time zone value if you want to utilize timezone support.  时区错误
  • 解决方案:
    • cmd下 执行mysql_upgrade -uroot -p --force
    • 重启mysql服务
    • 进入mysql
    • set global time_zone = ‘+8:00’;
    • flush privileges ;
    • show variables like ‘’%time_zone%’’ ;

1.4 Pycharm—数据库创建

创建命令如下:

Create database [数据库名] charset=’utf8’; 

注:

  • 使用pycharm创建数据库的时候一定要注意: 声明utf8字符集
  • 选中需要执行的sql语句,使用 ctrl+enter执行该语句.

1.5 ORM框架原理

在这里插入图片描述

  • django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
  • ORM在项目与数据库之间起桥梁作用,使用PyMySQL和mysqlclient连接Mysql数据库的接口。
  • 在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。例如:模型类BookInfo–映射到–> 数据表bookinfo。使数据库设计更加简单
  • ORM框架可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程,也就是我们下边提到的数据库迁移操作.
  • 用面向对象的方式去操作数据库的创建表、增加、修改、删除、查询等操作。把面向对象中的类和数据库表一一对应,通过操作类和对象,对数据表实现数据操作,不需要写sql,由orm框架生成。
  • Django的orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句;所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite…,如果数据库迁移,只需要更换Django的数据库引擎即可

1.6 数据库信息配置

  1. 默认情况下,配置使用SQLite。若不使用SQLite作为数据库,则需要额外的设置
  2. 其中ENGINE设置为数据库后端使用。内置数据库后端有:
'django.db.backends.postgresql'

'django.db.backends.mysql'

'django.db.backends.sqlite3'

'django.db.backends.oracle'

注:在实际的开发项目中,多数情况下使用的是Mysql数据库引擎.

  1. Mysql数据库引擎的配置:

在主路由的settings.py文件中, 通过DATABASES项进行数据库设置

DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql', 
                          'NAME': 'mydemo', 
                          'USER': 'root', 
                          'PASSWORD': '', 
                          'HOST': 'localhost', 
                          'PORT': '3306', } } 
  1. 数据库连接字段说明:
字段 说明
NAME 使用得数据库数据库名称
USER 数据库登录用的账户
PASSWORD 数据库登录用的密码
HOST 数据库服务器的位置,我们一般数据库服务器和客户端都是在一台主机上面,所以一般默认都填127.0.0.1或者localhost
PORT 数据库启动的端口号
字段 说明
NAME 使用得数据库数据库名称
USER 数据库登录用的账户
  1. start—数据库信息快捷键的配置
  • 打开pycharm的设置文件

在这里插入图片描述

  • 跳转到快捷键配置界面

在这里插入图片描述

注: 搜索框搜索 live —> 点击Python的小箭头 --点击+号 —选择live template

  • 配置快捷键信息

在这里插入图片描述
注: 配置完成,点击OK ,在settings中使用start进行测试使用.

2 Model模型层

2.1 Model 概述

  • 在Django中model是你数据的单一、明确的信息来源。它包含了你存储的数据的重要字段和行为。通常,一个模型类(model)映射到一个数据库表。
  • 定义简介:
    • 每个模型都是一个python类,它是django.db.models.Model的子类
    • 模型的每个属性都代表一个数据库字段
    • 综上所述,Django为您提供了一个自动生成的数据库访问API,详细见官方文档。
  • model与数据库结构对应关系图如下:

在这里插入图片描述

2.2 快速入门

下面举类详细分析model如何创建类,及各个语法的意义,如定义一个Person模型,包含两个属性first_name和last_name.

from  django.db import models class Person(models.Model): 
   #每个类都必须继承models.Model 
	first_name = models.CharField(max_length=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值