Django后端开发——模型层及ORM介绍

文章目录

  • 参考资料
  • Django配置MySQL
    • 安装mysqlclient
    • 创建数据库
      • 进入数据库的操作
      • 可能遇到的问题及解决方案
      • Pycharm配置settings.py
  • 模型![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c83753397bf6481d8defde26537903bf.png)
  • ORM
    • 介绍
    • 示例
      • 终端:
      • settings.py
      • bookstore的models.py
      • 效果


参考资料

B站网课:点击蓝色字体跳转
或者复制链接到浏览器打开:https://www.bilibili.com/video/BV1vK4y1o7jH?p=15&vd_source=597e21cf34ffcdce468ba00be2177e8a


Django配置MySQL

安装mysqlclient

在这里插入图片描述

一般都有python3-dev,没有default-libmysqlclient-dev,需要安装default-libmysqlclient-dev

然后安装mysqlclient

sudo pip3 install mysqlclient

若安装default-libmysqlclient-dev时报错‘pkg-config: not found’,这是由于缺少 ‘pkg-config’ 工具导致的,需要安装 pkg-config 工具

sudo apt-get update
sudo apt-get install pkg-config

安装完成后,再次尝试安装 mysqlclient:

sudo pip3 install mysqlclient

看是否安装成功:

sudo pip3 freeze|grep -i 'mysql'

若出现版本号,则安装成功

创建数据库

在这里插入图片描述

进入数据库的操作

终端:

sudo mysql -u root -p

输入虚拟机管理员密码

Enter password:这里,没有密码直接回车,无需输入

顺利进入mysql
在这里插入图片描述
数据库名往往与项目名一致

create database mysite3 default charset utf8;

可能遇到的问题及解决方案

1.报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
分析: MySQL 客户端无法通过指定的 Unix 套接字连接到本地 MySQL 服务器。常见原因包括 MySQL 服务器未启动或者 MySQL 服务器套接字文件路径配置错误
解决方案:
在这里插入图片描述

2.在解决问题1时报错:Unit mysql.service could not be found.
分析:表明系统上可能没有安装 MySQL 服务器,或者 MySQL 服务器安装后的服务名称可能不是 mysql
解决方案:
在这里插入图片描述
命令行:

dpkg -l | grep mysql-server
sudo apt-get update
sudo apt-get install mysql-server

安装了mysql服务器后再次尝试:

sudo mysql -u root -p

Pycharm配置settings.py

settings.py-DATABASES

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mysite3','USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '3306'}
}

在这里插入图片描述

模型在这里插入图片描述

ORM

介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

示例

在这里插入图片描述

终端:

cd django
cd day03
cd mysite3
python3 manage.py startapp bookstore

settings.py

在INSTALLED_APPS中添加‘bookstore’

bookstore的models.py

from django.db import models# Create your models here.
class Book(models.Model):title = models.CharField('书名',max_length=50,default='')price = models.DecimalField('价格',max_digits=7,decimal_places=2)

每一个类对应一个表,每一个属性对应一个字段
此时在数据库中是查询不到表格的:
进入数据库–选中mysite3数据库-查询表格

use mysite3
show tables;

在这里插入图片描述

这是因为需要数据库的迁移(同步至数据库)
在这里插入图片描述

python3 manage.py makemigrations
python3 manage.py migrate

效果

再次从mysql查看表格:
在这里插入图片描述
可以看到数据库的表格已经完成迁移

查看表格:

desc bookstore_book;

在这里插入图片描述
可以看到刚刚创建的表格

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——开发工具的使用

目录 Linux软件包管理器 yum rzsz Linux编辑器——vim vim的使用 vim的基本操作 命令模式的常见命令 底行模式的常见命令 vim是需要配置的 Linux编译器——gcc/g 预处理 编译 汇编 链接 函数库 Linux项目自动化构建工具 make/makefile make原理 项目清理 Linux调试器g…

踩坑实录(Fourth Day)

今天开工了,其实还沉浸在过年放假的喜悦中……今天在自己写 Vue3 的项目,虽说是跟着 B 站在敲,但是依旧是踩了一些个坑,就离谱……照着敲都能踩到坑,我也是醉了…… 此为第四篇(2024 年 02 月 18 日&#x…

天锐绿盾|公司办公文件数据\资料自动智能透明加密——数据防泄漏系统

天锐绿盾是一款专注于企业电脑文件数据资料透明加密的防泄密系统。它采用了先进的文件过滤驱动透明加解密技术,可以对企业核心部门的文档进行强制加密处理,确保从文档创建开始就能自动加密保护。文件的保存加密、打开解密完全由后台加解密驱动内核自动完…

2024年热门项目持续分析,趣味测试小程序项目分析以及系统功能介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 趣味测试小程序是目前比较热门的娱乐测试,运行模式就是引导粉丝用户进去…

【《高性能 MySQL》摘录】第 3 章 服务器性能剖析

文章目录 3.1 性能优化简介3.1.1 通过性能剖析进行优化3.1.2 理解性能剖析 3.2 对应用程序进行性能剖析3.3 剖析 MySQL 查询3.3.1 剖析服务器负载捕获 MySQL 的查询到日志文件中分析查询日志 3.3.2 剖析单挑查询使用 SHOW PROFILE (现已过时)使用SHOW ST…

Win32 获取EXE/DLL文件版本信息

CFileVersion.h #pragma once#include <windows.h> #include <string> #include <tchar.h>#ifdef _UNICODE using _tstring std::wstring; #else using _tstring std::string; #endif// 版本号辅助类 class CVersionNumber { public:CVersionNumber() :m_…

【天衍系列 05】Flink集成KafkaSink组件:实现流式数据的可靠传输 高效协同

文章目录 01 KafkaSink 版本&导言02 KafkaSink 基本概念03 KafkaSink 工作原理1.初始化连接2.定义序列化模式3.创建KafkaSink算子4.创建数据源5.将数据流添加到KafkaSink6.内部工作机制 04 KafkaSink参数配置05 KafkaSink 应用依赖06 KafkaSink 快速入门6.1 包结构6.2 项目…

【深度学习:数据注释工具】构建与购买:从业者的经验教训

【深度学习&#xff1a;数据注释工具】构建与购买&#xff1a;从业者的经验教训 为什么数据注释团队需要标记工具&#xff1f;您的软件工程团队是否有时间/资源来构建数据注释解决方案&#xff1f;为您的项目构建数据注释工具需要多长时间&#xff1f;将开发外包给第三方会更有…

SSH密钥认证登陆流程(Vscode连接到远程)

目录 前言连接远程步骤1. 下载工具包wsCli到本地机器2. 本地机器上生成ssh密钥3. 在服务器上安装公钥4. vscode连接到远程 参考资料 前言 SSH&#xff08;Secure Shell&#xff09;是一种用于远程登录和安全传输数据的网络协议。它提供了两种主要的远程连接方式&#xff1a; 密…

有趣的CSS - 新拟态输入框

我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;《有趣的css》系列已更新 11 篇了&#xff0c;今天这篇是关于新拟态风格的一个输入框效果&#xff0c;希望你们喜欢。 目录 页面效果核心代码html代码css代码 完整代码html页面css样式 页面效果 此效果使用 css 中 b…

PDF控件Spire.PDF for .NET【安全】演示:如何在 PDF 中添加签名字段

Spire.PDF for .NET 是一款独立 PDF 控件&#xff0c;用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库&#xff0c;开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理&#xff0c;且无需安装 Adobe Acrobat。 E-iceblue 功能类库Spire 系列文档处…

PyCharm 新建目录 (directory or folder)

PyCharm 新建目录 [directory or folder] 1. 新建目录2. Enter new directory name -> OKReferences 1. 新建目录 right mouse click on the project -> New -> Directory 2. Enter new directory name -> OK ​​​ References [1] Yongqiang Cheng, https:/…

go redis

go redis 快速入门 安装&#xff1a; go get github.com/redis/go-redis/v9然后创建客户端&#xff1a; package mainimport "github.com/redis/go-redis/v9"func main() {rdb : redis.NewClient(&redis.Options{Addr: "47.109.87.142:6379",Pa…

C++_design_model_observer

/* 观察者模式是一种常用的设计模式&#xff0c;用于在对象之间建立一种一对多的依赖关系&#xff0c;当被观察的对象发生变化时&#xff0c; 所有依赖于它的对象都能够得到通知并自动更新。下面是一个使用C实现观察者模式的例子&#xff1a; */#include <iostream> #inc…

Redis篇----第六篇

系列文章目录 文章目录 系列文章目录前言一、Redis 的持久化机制是什么?各自的优缺点?二、Redis 常见性能问题和解决方案:三、redis 过期键的删除策略?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…

如何查看springboot依赖的JDK版本

通过maven构建Java项目或者使用源代码进行Java编译时&#xff0c;常常遇到JDK版本和Springboot版本不匹配的问题&#xff0c;导致编译失败&#xff0c;比如出现如下错误&#xff1a; org/springframework/beans/factory/InitializingBean.class [ERROR] 类文件具有错误的…

Unix I/O 模型及Java I/O 模型详解

在Unix Socket的输入操作中&#xff0c;可以将其分为以下几个阶段&#xff1a; 等待数据就绪(内核空间)&#xff1a; 在这个阶段&#xff0c;应用程序通过调用阻塞式的读取函数&#xff08;如recv&#xff09;或非阻塞式的读取函数&#xff08;如recv、recvfrom&#xff09;等待…

入门级10寸加固行业平板—EM-I10J

亿道信息以其坚固耐用的智能终端设备而闻名&#xff0c;近日发布了一款理想入门级 10 英寸加固平板电脑—I10J。 EM-I10J​​ 这是一款 10 英寸的平板电脑&#xff0c;主要运行 Windows 10操作系统&#xff0c;带有硬化塑料外壳&#xff0c;具有 IP65 防水防尘功能和 MIL-STD 8…

线性dp之石子合并

设有 N堆石子排成一排&#xff0c;其编号为 1,2,3,…,N。 每堆石子有一定的质量&#xff0c;可以用一个整数来描述&#xff0c;现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆&#xff0c;合并的代价为这两堆石子的质量之和&#xff0c;合并后与这两堆石子相邻的…

注册及搭建小程序开发环境

一、注册小程序账号 打开微信公众平台&#xff0c;通过邮箱注册小程序账号&#xff08;每个邮箱账号&#xff0c;只能注册一个小程序&#xff09;。 注册完成后&#xff0c;登录邮箱&#xff0c;打开激活地址&#xff0c;按照邮件提示&#xff0c;填写信息&#xff0c;激活账号…