当前位置 : 主页 > 编程语言 > python >

Django(part22)--创建数据对象

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记,仅供参考,有错必纠 数据库的操作(CRUD操作) CRUD是指在做计算处理时的增加(Create)、读取查询(Read)、更新(Update)和删除(Delete) 管理器对象 每个继承自 models.Model 的模型类,都会

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



数据库的操作(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 views

urlpatterns = [
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 include

urlpatterns = [
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/发起请求:

Django(part22)--创建数据对象_python



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

Django(part22)--创建数据对象_python_02



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

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

OK!

上一篇:Django(part21)--models字段
下一篇:没有了
网友评论