django之模型层(model)建表查询删除基础布吉岛丶

要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查。本篇仅带领大家进行简单的建表、查询和删除,因为model的重要性所以后面几篇都会围绕ORM慢慢深入。

本篇导论:

一、ORM

映射关系:

表名<------->类名

字段<------->属性

表记录<------->类实例对象

二、创建表(建立模型)

1、创建表的代码写在项目下的models文件中

1)比如我们创建一个图书表,建立如下:

fromdjango.dbimportmodels#Createyourmodelshere.classBook(models.Model):nid=models.AutoField(primary_key=True)#AutoField有序整形IntegerField整形title=models.CharField(max_length=32)#CharField字符author=models.CharField(max_length=32)publishDate=models.DateField()#DateField日期类型price=models.DecimalField(max_digits=5,decimal_places=2)#DecimalField浮点型也可以用FloatField类名就是表名,属性就是字段。继承django提供给我们的用于做转换的models.Model才能将我们写的类转化为数据库

定义好模型之后,你需要告诉Django使用这些模型。你要做的就是修改配置文件。

2)字段常用参数

1)django默认使用的是sqlite3数据库,我们使用的是mysql数据库所以需要修改配置

原先配置(将这些配置注释掉)

DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':os.path.join(BASE_DIR,'db.sqlite3'),}}重新配置

DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'blog',#你的数据库名称数据库需要自己提前建好'USER':'root',#你的数据库用户名'PASSWORD':'',#你的数据库密码'HOST':'',#你的数据库主机,留空默认为localhost'PORT':'3306',#你的数据库端口}}3、创建表命令

1)同步更改数据库表或字段

老版本:pythonmanage.pysyncdbDjango1.7.1及以上的版本需要用以下命令pythonmanage.pymakemigrationspythonmanage.pymigrate2)运行pythonmanage.pymakemigrations后我们应用下的migrations文件夹里会自动生成一个文件,是将我们写的类进一步转化:

#-*-coding:utf-8-*-#GeneratedbyDjango1.11.6on2017-10-2503:30from__future__importunicode_literalsfromdjango.dbimportmigrations,modelsclassMigration(migrations.Migration):initial=Truedependencies=[]operations=[migrations.CreateModel(name='Book',fields=[('nid',models.AutoField(primary_key=True,serialize=False)),('title',models.CharField(max_length=32)),('author',models.CharField(max_length=32)),('publishDate',models.DateField()),('price',models.DecimalField(decimal_places=2,max_digits=5)),],),]3)运行pythonmanage.pymigrate后表就插入到我们的数据库中了

4)注意:

如果我们的python是3.x版本运行上面两条会报错

Nomodulenamed"MySQLdb"在3.x走数据库用的是pymysql模块所以我们需要告诉django用pymysql

在应用下的__init__.py文件里添加代码

importpymysqlpymysql.install_as_MySQLdb()运行后在数据库里查看:

会发现django给我们创建了很多表我们自己创建的Book表会被自动改名为应用名_book这样避免了我们在不同的应用中有相同的表,其他的表后面用到时会一一介绍。

三、查看表

1、先在视图函数view中将数据取出来

<1>all():查询所有结果<2>filter():查询所给筛选条件相匹配的对象2、在template模版中接收

{%forbook_objinbookList%}{{book_obj.nid}}{{book_obj.title}}{{book_obj.author}}{{book_obj.publishDate|date:"Y-m-d"}}{{book_obj.price}}{%endfor%}

四、删除

删除方法就是delete()。它运行时立即删除对象而不返回任何值。

比如我们给表中添加一个删除按钮来实现点击按钮后数据库每条记录的删除

1、template模版

urlpatterns=[url(r'^admin/',admin.site.urls),url(r'^index/',views.index),url(r'^del/(\d+)',views.delBook),]3、视图函数view实现删除

defdelBook(request,id):models.Book.objects.filter(nid=id).delete()returnredirect("/index/")

THE END
1.数据库中设计表和记录操作sql创建一个图书表book1、使用T-SQL语句建立book表,并建立主键约束。该表包含的字段及数据类型如下表: book表结构 字段名称 数据类型 是否可以为空 是否为主键 图书编号 char(6) Not null 是 图书名称 Varchar(40) Not null 作者char(8) Not null 出版社编号 char(4) null https://blog.csdn.net/weixin_45215308/article/details/122466877
2.请使用SQL命令编写对读者表中的单位列按降序创建普通搜索引擎用创建数据表 实施数据完整性规则 管理数据 查询与统计数据 创建视图 概述 设计一个“图书借阅数据库系统”,对图书表 book、读者表 reader、借阅记录表 record 等进行数据表的详细设计。 创建数据表 1. 创建表 创建读者表 reader CREATE TABLE reader ( https://blog.51cto.com/u_16099325/10740595
3.sql创建一个图书表booksql创建一个图书表book 文心快码BaiduComate 当然,我可以帮助你创建一个图书表book。下面是一个详细的步骤说明: 1. 确定图书表book的字段及其数据类型 在创建图书表之前,我们需要确定表中需要哪些字段以及这些字段的数据类型。以下是一个常见的图书表字段列表及其数据类型: book_id:图书的唯一标识符,通常使用INT类型https://agents.baidu.com/content/question/daf3586c490ac2ec70322f90
4.使用T创建自己的小题库 搜索 【简答题】 使用T-SQL创建一个图书表book,属性如下:图书编号、类别号、书名、作者、出版社;类型均为字符型;长度分别为6、1、50、8、30;且图书编号、类别号、书名三个字段不允许为空。 CREATE book (图书编号 (6) NOT NULL, 类别号 char(1) NOT NULL, 书名 varchar(50) , https://www.shuashuati.com/ti/c9514476996e4658ae04bb588f72a99c.html?fm=bdae3a7764aa2b917f29d03a7c0b77eae0
5.实验5sql语句练习——图书馆数据库答案20240807001743.pdf归还归还图书的日期定长字符串,长度为空值 日期8 主键为:(读者号,图书 号) (1)用Sql语句创建图书馆数据库 CreatedatabaseLab05 (2)用Sql语句创建上述3个表 createtablebook ( bookIdchar(10)primarykey, bookNamevarchar(50), bookWritervarchar(30), bookPublishvarchar(30), bookPricefloat ) createtablereahttps://max.book118.com/html/2024/0807/5104340100011304.shtm
6.Python连接Mysql实现图书借阅系统python相信大家在学习python编程时绝对离不开数据库的连接,那么我们就用python来连接数据库实现一个简单的图书借阅系统。其实也很简单,就是在我们的程序中加入sql语句即可 数据库的表结构 我们在这里需要三张表,一张用户表,一张图书表和一张借阅表。注意我们的数据库命名为bbs(book borrow system) 1.用户表 2.图书表 https://www.jb51.net/article/240368.htm
7.Django简介及模型类然后我们就可以迁移表python manage.py migrate 图31 此时我们就可以使用数据库查看我们创建的表,这里我们能看到外键字段的名字不是我们写的hbook,而是hbook_id,这是外键设置的字段名模式,使用属性名_id,(上图由于数据库跑在另一个电脑上,我截图麻烦,就使用的视频中sqlite3的客户端效果,Mysql也是这个名字) https://www.jianshu.com/p/b2fa9887fc83
8.BookStore数据库中有图书表Book(BookCode,BookNamBookStore数据库中有图书表Book(BookCode,BookName,Author,PublisherCode,PublishTime,PublishTime是datetime类型。查询Book表中的图书类别(BookSort),要求每个类别只显示一次。SQL语句:SELECT()BookSort FROM Book A.DISTINCT B.ONLY C.ONE D.PERCENT 点击查看答案&解析进入题库练习 查答案就用赞题库小程序 还有拍照搜https://m.ppkao.com/mip/tiku/shiti/10866673.html
9.北京邮电大学《数据库与云存储》2022学生表中添加一个“电话”字段,数据类型为字符串,长度为20,以下SQL语句正确的是()()A.ALTERTABLEstudentsADDphoneVARCHAR(20)B.MODIFYTABLEstudentsADDphoneVARCHAR(20)C.CHANGETABLEstudentsADDphoneVARCHAR(20)D.UPDATETABLEstudentsADDphoneVARCHAR(20)8、在关系数据库中,为了提高查询效率,通常会在哪些列上创建索引(https://www.renrendoc.com/paper/368951489.html
10.4.2图书借阅系统数据库设计MySQL腾讯云开发者社区大家好,我是天罡gg,一个有十多年丰富经验的高级架构师,参与过很多系统的数据库设计,在数据库设计方面有相当丰富的经验。正赶上这篇实战专栏的数据库设计,所以今天让我们来一起做一下《图书借阅系统的数据库设计》,一篇既有理论知识,又能实战落地的数据库设计! https://cloud.tencent.com/developer/article/2266828
11.数据库原理及MySQL应用约束主键约束TiAmo【例 6-26】在图书销售数据库 booksale 中创建订单项目表 orderitems2,该表的主键约束设置在 orderid 和 bookid 两列上,然后查看约束信息及索引情况。 创建orderitems2 表的同时创建了一个主键约束,这个主键约束是一个表级约束,默认的主键约束名为 PRIMARY,约束类型为 PRIMARY KEY。创建该主键约束的同时还创建了https://xie.infoq.cn/article/b5a270c2c1936b5fbf3ba6b97