Web框架开发-Django模型层(数据库操作)

一、ORM介绍

  • MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动
  • ORM是“对象-关系-映射”的简称。

映射关系:

表名 --------------------》类名

  字段--------------------》属性

  表记录-----------------》类实例化对象

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

#sql中的表                                                     

 #创建表:

     CREATE TABLE employee(                                    

                id INT PRIMARY KEY auto_increment ,                   

                name VARCHAR (20),                                     

                gender BIT default 1,                                 

                birthday DATA ,                                        

                department VARCHAR (20),                               

                salary DECIMAL (8,2) unsigned,                         

              );

  #sql中的表纪录                                                 

  #添加一条表纪录:                                                         

      INSERT employee (name,gender,birthday,salary,department)           

             VALUES   ("alex",1,"1985-12-12",8000,"保洁部");              

  #查询一条表纪录:                                                          

      SELECT * FROM employee WHERE age=24;                              

  #更新一条表纪录:                                                          

      UPDATE employee SET birthday="1989-10-24" WHERE id=1;             

  #删除一条表纪录:                                                         

      DELETE FROM employee WHERE name="alex"                            

#python的类

class Employee(models.Model):

     id=models.AutoField(primary_key=True)

     name=models.CharField(max_length=32)

     gender=models.BooleanField()

     birthday=models.DateField()

     department=models.CharField(max_length=32)

     salary=models.DecimalField(max_digits=8,decimal_places=2)

 #python的类对象

      #添加一条表纪录:

          emp=Employee(name="alex",gender=True,birthday="1985-12-12",epartment="保洁部")

          emp.save()

      #查询一条表纪录:

          Employee.objects.filter(age=24)

      #更新一条表纪录:

          Employee.objects.filter(id=1).update(birthday="1989-10-24")

      #删除一条表纪录:

          Employee.objects.filter(name="alex").delete()

  

ORM的两大功能:

  操作表:

    - 创建表

    - 修改表

    - 删除表

  操作数据行:

    - 增删改查

ORM利用pymysql第三方工具链接数据库

Django没办法帮我们创建数据库,只能我们创建完之后告诉它,让django去链接

二、创建表之前的准备工作

1、自己创建数据库

2、在setting里面配置mysql数据库链接

  sqlite3----------改为mysql

1

2

3

4

5

6

7

8

9

10

11

# 修改django默认的数据库的sqlite3为mysql

DATABASES = {

    'default': {

            'ENGINE': 'django.db.backends

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

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

相关文章

[C++11] 智能指针(auto_ptr(弃用)、unique_ptr、shared_ptr、weak_ptr)详细解读

说明:本文主要解释auto_ptr、unique_ptr、shared_ptr、weak_ptr这几种智能指针。接下来我们对每一个指针类型进行详细说明并给出一些基本的使用方式,重在深入理解。 在 C 中,auto_ptr、unique_ptr、shared_ptr 和 weak_ptr四种智能指针主要用…

拌合楼管理系统(八) c#海康威视摄像头车牌识别

前言: c#调用海康威视SDK实现车牌识别 原本以为海康威视sdk的Demo里面没有车牌识别的实例,后来发现自己肤浅了,官方是有提供的,只是车牌识别是通过安防布警的方式实现的.程序主动监听,触发告警后获取到车牌信息. 一、接口调用的流程: 首先初始化sdk -> 开…

SQLiteC/C++接口详细介绍sqlite3_stmt类(四)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(三) 下一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(五) 7. sqlite3_bind_parameter_count函数 sqlite3_bind_param…

流畅的 Python 第二版(GPT 重译)(十一)

第二十章:并发执行器 抨击线程的人通常是系统程序员,他们心中有着典型应用程序员终其一生都不会遇到的用例。[…] 在 99%的用例中,应用程序员可能会遇到的情况是,生成一堆独立线程并将结果收集到队列中的简单模式就是他们需要了解…

Java newInstance方法学习

用newInstance与用new是有区别的,区别在于创建对象的方式不一样,前者是使用类加载机制; newInstance方法要求该 Class 对应类有无参构造方法; 执行 newInstance()方法实际上就是使用对应类的无参构造方法来创建该类的实例&#x…

docker离线安装并修改存储目录

docker下载 根据cpu选择不同版本,正常x86就选x86_64 下载地址:https://download.docker.com/linux/static/stable/ docker安装 tar -zxvf arm-docker-25.0.4.tgz sudo cp docker/* /usr/bin/ rm -rf docker/* mkdir /etc/docker vi /etc/docker/daemo…

YOLOV4-车道线检测-车距离预测

1.前言 最近在看华为的CANN框架,发现了一些很有意思的开源算法(本文所有的代码都出自华为开源git发布的代码),华为最近出了AI PRO开发板,想着现在开发板上用用(不想重新配置环境了,麻烦还累),看着代码有onnx的模型&…

浅学redis

一、持久化 1.为什么需要持久化? 如果不将内存中的数据保存到磁盘,那么一旦服务器进程退出,服务器中数据也会消失,所以redis提供了持久化功能 2.RDB(redis database) redis配置中,默认使用RDB…

绝地求生:PUBG延长GPU崩溃时间新方法

相信大家都在被GPU游戏崩溃苦恼已久,PUBG这个游戏崩溃,跟超频是没有多大关系的,只要超频TM5过测,YC过测,或者双烤过测,就没问题。主要是这个游戏的优化不行,特别40系显卡,对内存条也…

C# System.Console.WriteLine的格式化输出

C#中Console.WriteLine()函数输出格式详解 真 C#中Console.WriteLine()函数输出格式详解 假 using System;namespace Test {class TODO {static void Main() {System.Console.WriteLine("!{1,4:D3}!", 12, 24);}} }! 024!{index[,alignment][:formatString]} 其中&a…

免费AI出图神器:StableStudio——定义AI作画新前景

StableStudio:探索艺术与科技的无限交界,StableStudio引领AI智能创作新浪潮! - 精选真开源,释放新价值。 概览 ChatGPT大语言模型AI的诞生引爆了对AIGC的讨论。AIGC 又称生成式 AI (Generative AI),是继专业生产内容&…

VSCode使用MSVC编译器

1.其他大佬的配置&#xff1a;下载和安装库环境 2.安装好C/C插件<选择1.8.4的版本最好>。 3.分别生成对应的默认模板即可。但是其中参数可能需要配置。 task.json {"version": "2.0.0","tasks": [{"type": "cppbuild"…

Python 全栈体系【四阶】(十七)

第五章 深度学习 一、基本理论 3. 深度神经网络训练法则 3.1 损失函数 3.1.1 什么是损失函数&#xff1f; 损失函数&#xff08;Loss Function&#xff09;&#xff0c;也有称之为代价函数&#xff08;Cost Function&#xff09;&#xff0c;用来度量预测值和实际值之间的差…

html5cssjs代码 029 CSS计数器

html5&css&js代码 029 CSS计数器 一、代码二、解释 该HTML代码定义了一个网页的结构和样式。在头部&#xff0c;通过CSS样式定义了body和h1-h2元素的样式。body元素的样式包括文本居中、计数器重置、字体颜色和背景颜色。h2元素的样式使用了CSS计数器来自动在标题前添加…

2024最新华为OD机试试题库全 -【转盘寿司】- C卷

1. 🌈题目详情 1.1 ⚠️题目 寿司店周年庆,正在举办优惠活动回馈新老客户。 寿司转盘上总共有 n 盘寿司,prices[i] 是第 i 盘寿司的价格, 如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没…

RIDE控制台中文显示为乱码问题解决方案【版本1.7.4.1】

1、方法&#xff1a; 将 C:\Users\user_name\AppData\Roaming\Python\Python37\site-packages\robotide\contrib\testrunner\testrunnerplugin.py文件中的第80行修改&#xff0c;改为utf-8 2、修改代码位置&#xff1a; 3、效果&#xff1a; 4、参考文章 试了前面的方法没有…

千益畅行共享旅游卡怎么代理? 开启江浙沪区域畅享0费用旅游新机遇

想要探索副业项目的新领域&#xff0c;共享旅游卡无疑是一个极具潜力的选择。千益畅行旅游卡作为市场上的佼佼者&#xff0c;为众多创业者提供了一个零风险、高回报的副业项目。无论是上海共享旅游卡代理、江苏共享旅游卡代理、还是浙江共享旅游卡代理&#xff0c;都能让你轻松…

vue-pdf的注意事项

vue2项目 node版本切换到14.21.3 npm install --save vue-pdf4.2.0 npm install pdfjs-dist2.5.207 [^ 注意]&#xff1a;一般情况下&#xff0c;执行上述命令就可以解决这个问题&#xff0c;但有时候在执行完后还是不行&#xff0c;这时候如果你执意要搜索为什么&#xff0c;…

Python 深度学习第二版(GPT 重译)(一)

前言 序言 如果你拿起这本书&#xff0c;你可能已经意识到深度学习在最近对人工智能领域所代表的非凡进步。我们从几乎无法使用的计算机视觉和自然语言处理发展到了在你每天使用的产品中大规模部署的高性能系统。这一突然进步的后果几乎影响到了每一个行业。我们已经将深度学…

【C语言】结构体内存对齐问题

1.结构体内存对齐 我们已经基本掌握了结构体的使用了。那我们现在必须得知道结构体在内存中是如何存储的&#xff1f;内存是如何分配的&#xff1f;所以我们得知道如何计算结构体的大小&#xff1f;这就引出了我们今天所要探讨的内容&#xff1a;结构体内存对齐。 1.1 对齐规…