完美主义者的最终框架
admin
2023-03-29 14:01:42
0

Django模型是与数据库相关的,与数据库相关的代码一般写在 models.py中,Django支持sqlite3,MySQL,PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用。

Model相对于传统的三层或者mvc框架来说就相当于数据处理层,它主要负责与数据的交互,在使用django框架设计应用系统时,需要注意的是django默认采用的是orm框架中的codefirst模型,也就是说开发人员只需要专注于代码的编写,而不需要过多的关注数据库层面的东西,把开发人员从数据库中解放出来

django会根据Model类生成一个数据库镜像文件,然后再使用该镜像文件生成数据库,同时该文件将记录与数据库同步版本的变化,所以在使用django进行开发时不要手工去修改数据库,这样会造成django框架的版本记录不正确,从而无法正确的同步数据模型与数据库的内容。Django中引用了ORM(Objects Relational Mapping)对象关系映射,对不同的数据库都提供了同一调用的API。ORM是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。可以简单理解为翻译机。

下面通过简单的代码来看看model是怎么创建数据库的。


创建工程和APP

创建工程:

django-admin startproject douban

创建应用:

在douban工程项目目录下输入:

python manage.py startapp book(你想建立的app名称)

建立一个叫book的app

这样,在你的工程项目douban目录下会出现一个叫book的目录

将我们新建的应用(book)添加到 settings.py 中的 INSTALLED_APPS中,也就是告诉Django有这么一个应用。

完美主义者的最终框架


创建Model

在book目录下进入models.py输入类似下面的代码:

完美主义者的最终框架


上面的每个class相当于一个新的table

django会自动给每个model配置一个名为id的primary key


同步数据库

在shell中输入

python manage.py makemigrations       #建立了模型到表的映射关系

python manage.py migrate                        #生成表

之后你应该能看到诸如:

Creating tables...

Creating tablebooks_publisher

Creating tablebooks_author

Creating tablebooks_book_authors

Creating tablebooks_book

Installingcustom SQL ...

Installingindexes ...

Installed 0object(s) from 0 fixture(s)

这样的信息


使用Navicat可以直观看到生成的表

完美主义者的最终框架


数据库的增删改查

(插入一个新的对象) insert:

在python-shell下面操作可以直接操作


from book.modelsimport Author

Ø  方法1:

p1 =Author(name='zhangsan',age=30,email='zhangsan@126.com')

p1.save()

Ø  方法2:

p1 = Author()

p1. name='zhangsan'

p1.age =30

p1.email='zhangsan@126.com'

p1.save()

Ø  方法3:

Author.objects.create(name='zhangsan',age=30,email='zhangsan@126.com')

Ø  方法4:

Author.objects.get_or_create(name='zhangsan',age=30,email='zhangsan@126.com)

第4种方法是防止重复很好的方法, 但是速度要相对慢些, 返回一个元组, 第一个为Author对象, 第二个为True或False,新建时返回的是True, 已经存在时返回False.


(查询或选择对象)select:

在python-shell下面操作可以直接操作

完美主义者的最终框架


(更新对象)update:

在python-shell下面操作可以直接操作

完美主义者的最终框架


(删除对象)delete:

在python-shell下面操作可以直接操作

完美主义者的最终框架



相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...