学习笔记,仅供参考,有错必纠


数据库的操作(CRUD操作)

CRUD是指在做计算处理时的增加(Create)、读取查询(Read)、更新(Update)和删除(Delete)

管理器对象

每个继承自 models.Model 的模型类,都会有一个objects对象被同样继承下来。这个对象叫管理器对象,数据换的增删改查可以通过模型的管理器实现。

创建数据对象

Django使用一种直观的方式把数据库表中的数据表示成Python对象,创建数据中每一条记录就是创建一个数据对象

  • 创建方法1
Entry.objects.create(属性1=值1, 属性2=值1,...)
//举个例子
models.Book.objects.create(title = "django", pub = "清华")

返回值为已经创建完成的实体对象

  • 创建方法2

创建 Entry 实体对象,并调用 save() 进行保存

obj = Entry(属性=值,属性=值)
obj.属性=值
obj.save()
//举个例子
abook = models.Book(title='Python', pub='清华大学出版社')
abook.save()

无返回值,保存成功后,obj对象会被重新赋值

  • 创建方法3
obj = Entry()
obj.属性=值
obj.save()
//举个例子
abook = models.Book()
abook.title='R语言'
abook.pub='中国电力出版社'
abook.save()

举个例子

我们用以前的BLOG数据库和模型创建的工程mywebsite_db来完成这个例子。

首先我们在bookstore下创建一个urls.py文件,并敲入以下代码:

from django.urls import re_path
from . import viewsurlpatterns = [re_path(r'^$', views.bookHome),re_path(r'^add/$', views.addBook),
]

在bookstore应用的views.py模块中加入以下代码:

from django.shortcuts import render
from django.http import HttpResponse
from . import models# Create your views here.def bookHome(request):return HttpResponse("<h1>Welcome to BookStore!</h1>")def addBook(request):if request.method == 'GET':title = request.GET.get('title', 'noname')publish = request.GET.get('title', 'nopublisher')models.Book.objects.create(title = title, pub = publish)return HttpResponse("<h1>Good!</h1>")

接下来,我们在主urls.py文件中敲入以下代码:

from django.contrib import admin
from django.urls import path
from django.urls import re_path
from django.conf.urls import includeurlpatterns = [path('admin/', admin.site.urls),re_path(r'^book/', include('bookstore.urls'))
]

我们再回顾一下等下要被添加数据的bookstore_book表:

mysql> desc bookstore_book;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| title | varchar(30) | NO   |     | NULL    |                |
| pub   | varchar(50) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)mysql> select * from bookstore_book;
Empty set (0.01 sec)

现在我们开启服务,并向http://127.0.0.1:8000/book/发起请求:

再向http://127.0.0.1:8000/book/add?title=Djangoweb开发实战&pub=清华大学出版社发起请求

再次查看mywebdb数据库中的bookstore_book表:

mysql> select * from bookstore_book;
+----+-------------------+----------------+
| id | title             | pub            |
+----+-------------------+----------------+
|  1 | Djangoweb开发实战 | 清华大学出版社 |
+----+-------------------+----------------+
1 row in set (0.00 sec)

OK!

Django(part22)--创建数据对象相关推荐

  1. php model get set方法,创建数据库对象之__set方法

    __set( )方法自动创建数据对象原始数据其实就是通过魔术方法动态创建属性的方法来生成数据对象 2. 源码:本教程如无特别说明:源码均指:Model.php 类文件中的内容. 文件位置:/think ...

  2. 服务数据对象简介(Java 环境中的下一代数据编程)

    如果您认为 J2EE 编程模型和 API 迫使开发人员在特定于技术的配置.编程和调试上浪费了太多的时间,那么欢迎您阅读本文.很多 Java™ 开发人员都怀疑如何能以统一的方式访问异构的数据,并对各种提 ...

  3. 对象类型数据和对象实例数据_服务数据对象简介

    简而言之,SDO是用于数据应用程序开发的框架,其中包括体系结构和API. SDO执行以下操作: 简化J2EE数据编程模型 在面向服务的体系结构(SOA)中抽象数据 统一数据应用程序开发 支持和集成XM ...

  4. 肖锰:浪潮GS开发平台学习札记(五)——数据对象和数据模型的建立

    在上节中建立了001用户,我们使用001登录系统,登录后的界面大体如下图所示. 我们点到[专业开发平台],找到[集成开发平台],这就是浪潮GS中的重头戏--GSP Studio. 首先我们建立一个新的 ...

  5. 肖锰:浪潮GS开发平台学习札记(五)——数据对象和数据模型

    名词解释: 数据对象:是描述数据存储信息的元数据.如表.视图.主键. 数据模型:是描述业务对象的数据结构.数据约束以及数据访问的元数据. 数据模型由主对象.子对象.字段和关联等组成. 在上节中建立了0 ...

  6. [转载]服务数据对象简介

    服务数据对象简介 如果您认为 J2EE 编程模型和 API 迫使开发人员在特定于技术的配置.编程和调试上浪费了太多的时间,那么欢迎您阅读本文.很多 Java™ 开发人员都怀疑如何能以统一的方式访问异构 ...

  7. 13.Django shell与创建数据

    数据库的基本操作是CRUD,增加(Create),读取(Read),更新(Update),删除(Delete),就是增删改查 我们核心是对模型类(我们当前是login_content)中的管理器对象( ...

  8. ABAP动态创建数据DATA或对象Object

    TYPES:ty_i TYPE i. DATA:dref TYPE REF TO ty_i. CREATE DATA dref TYPE ('I')."根据基本类型名动态创建数据 dref- ...

  9. 浅析Java中对象的创建与对象的数据类型转换

    这篇文章主要介绍了Java中对象的创建与对象的数据类型转换,是Java入门学习中的基础知识,需要的朋友可以参考下 Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据 ...

最新文章

  1. 关于idea使用SpringMVC配置正确却404问题及解决办法
  2. android 对象数据库中,解析嵌套的JSON对象,并存储在数据库中的Android
  3. kindeditor图片上传 struts2实现
  4. 深入理解PHP异常和错误处理(6)PHP如何优雅的处理错误
  5. 基于ASP.NET Core api 的服务器事件发送
  6. 最大子数组问题 线性时间_我最喜欢的线性时间排序算法
  7. mysql导出选择两张表,Mysql导出(多张表)表结构及表数据 mysqldump用法
  8. jQuery LigerUI 初次发布一睹为快(提供Demo下载)
  9. 什么?吴宗宪在淘宝帮你买买买?
  10. 统计假设检验之显著性检验(significance test)
  11. 字节跳动李航博士入选2019 ACL Fellow,成为第五位入选华人学者
  12. python-flask 设置网页保留缓存静态文件时间
  13. 华为阿里下班时间曝光:所有的光鲜,都有加班的味道
  14. 本科就学人工智能有意义吗?
  15. Photoshop---Wacom手绘板绘画画变成了拖动,根本不能画画
  16. javaScript改变this指向的三种方法
  17. 仿得物微信小程序(动手就会,含源码)
  18. 情人节送玫瑰花数的含义,男的必看。(转)
  19. 吴裕雄--天生自然 诗经:兵车行
  20. 人脸表情系列——人脸表情识别(Facial Expression Recognization/FER)

热门文章

  1. Qt OpenGL环境配置的问题
  2. 7.4.7 2DPCA
  3. 诛仙服务器显示横线,诛仙手游聊天颜色字体代码发送带颜色的字
  4. python版本切换_Ubuntu18.04下python版本完美切换的解决方法
  5. [开源]Dapper Repository 一种实现方式
  6. 持续集成实验个人总结
  7. rhel 4/oracle linux 4/centos linux 4 配置本地yum资源库
  8. Microsoft发布用于统一事件处理的Azure事件网格
  9. NOIP Mayan游戏
  10. c#类和结构体的关系