日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

完美主义者的最终框架

發(fā)布時(shí)間:2023/12/1 综合教程 53 生活家
生活随笔 收集整理的這篇文章主要介紹了 完美主义者的最终框架 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

云計(jì)算

Django模型是與數(shù)據(jù)庫(kù)相關(guān)的,與數(shù)據(jù)庫(kù)相關(guān)的代碼一般寫在 models.py中,Django支持sqlite3,mysql,PostgreSQL等數(shù)據(jù)庫(kù),只需要在settings.py中配置即可,不用更改models.py中的代碼,豐富的API極大的方便了使用。

Model相對(duì)于傳統(tǒng)的三層或者mvc框架來說就相當(dāng)于數(shù)據(jù)處理層,它主要負(fù)責(zé)與數(shù)據(jù)的交互,在使用django框架設(shè)計(jì)應(yīng)用系統(tǒng)時(shí),需要注意的是django默認(rèn)采用的是orm框架中的codefirst模型,也就是說開發(fā)人員只需要專注于代碼的編寫,而不需要過多的關(guān)注數(shù)據(jù)庫(kù)層面的東西,把開發(fā)人員從數(shù)據(jù)庫(kù)中解放出來

django會(huì)根據(jù)Model類生成一個(gè)數(shù)據(jù)庫(kù)鏡像文件,然后再使用該鏡像文件生成數(shù)據(jù)庫(kù),同時(shí)該文件將記錄與數(shù)據(jù)庫(kù)同步版本的變化,所以在使用django進(jìn)行開發(fā)時(shí)不要手工去修改數(shù)據(jù)庫(kù),這樣會(huì)造成django框架的版本記錄不正確,從而無法正確的同步數(shù)據(jù)模型與數(shù)據(jù)庫(kù)的內(nèi)容。Django中引用了ORM(Objects Relational Mapping)對(duì)象關(guān)系映射,對(duì)不同的數(shù)據(jù)庫(kù)都提供了同一調(diào)用的API。ORM是一種程序技術(shù),用于實(shí)現(xiàn)面向?qū)ο缶幊陶Z(yǔ)言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換??梢院?jiǎn)單理解為翻譯機(jī)。

下面通過簡(jiǎn)單的代碼來看看model是怎么創(chuàng)建數(shù)據(jù)庫(kù)的。

創(chuàng)建工程和APP

創(chuàng)建工程:

django-admin startproject douban

創(chuàng)建應(yīng)用:

在douban工程項(xiàng)目目錄下輸入:

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

建立一個(gè)叫book的app

這樣,在你的工程項(xiàng)目douban目錄下會(huì)出現(xiàn)一個(gè)叫book的目錄

將我們新建的應(yīng)用(book)添加到 settings.py 中的 INSTALLED_APPS中,也就是告訴Django有這么一個(gè)應(yīng)用。

創(chuàng)建Model

在book目錄下進(jìn)入models.py輸入類似下面的代碼:

上面的每個(gè)class相當(dāng)于一個(gè)新的table

django會(huì)自動(dòng)給每個(gè)model配置一個(gè)名為id的primary key

同步數(shù)據(jù)庫(kù)

在shell中輸入

python manage.py makemigrations? ? ? ?#建立了模型到表的映射關(guān)系

python manage.py migrate? ? ? ? ? ? ? ? ? ? ? ? #生成表

之后你應(yīng)該能看到諸如:

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可以直觀看到生成的表

數(shù)據(jù)庫(kù)的增刪改查

(插入一個(gè)新的對(duì)象) 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種方法是防止重復(fù)很好的方法, 但是速度要相對(duì)慢些, 返回一個(gè)元組, 第一個(gè)為Author對(duì)象, 第二個(gè)為True或False,新建時(shí)返回的是True, 已經(jīng)存在時(shí)返回False.

(查詢或選擇對(duì)象)select:

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

(更新對(duì)象)update:

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

(刪除對(duì)象)delete:

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

總結(jié)

以上是生活随笔為你收集整理的完美主义者的最终框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。