完美主义者的最终框架

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

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

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

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

建立工程和APP
建立工程:django

django-admin startproject douban编程

建立应用:mvc

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

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下面操做能够直接操做


————————————————

睿江云官网连接:https://www.eflycloud.com/home?from=RJ0036

相关文章
相关标签/搜索