新聞中心
Django里面,管理數(shù)據(jù)庫和sqlarchemy類似,也是通過orm框架來實(shí)現(xiàn)的。所有的數(shù)據(jù)庫的建立,都是在model.py里面通過類來實(shí)現(xiàn)的。
澗西ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
首先看看如何創(chuàng)建一個(gè)單表:
a. 先定義一個(gè)類,繼承models.Model, 然后根據(jù)需求定義參數(shù),這些參數(shù)的類型和變量后面會(huì)進(jìn)一步闡述
models.py
from django.db import models class UserInfo(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=64)
b. 注冊app
settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01', ]
c.執(zhí)行命令。 第一條命令會(huì)生成一個(gè)初始化文件,第二個(gè)命令會(huì)生成對應(yīng)的表
python manage.py makemigrations python manage.py migrate
這樣,就在PyCharm自帶的sqlite數(shù)據(jù)庫里面成功的生成了一個(gè)app01_UserInfo的表。這個(gè)表默認(rèn)會(huì)有一個(gè)自增的id作為主鍵,另外兩個(gè)字段是我們通過類創(chuàng)建的。
d. 如果希望使用MySQL,因?yàn)镈jango默認(rèn)使用了MySqldb模塊,這個(gè)在3.0版本里面不存在,會(huì)直接報(bào)錯(cuò)。我們需要改為pymysql的模塊,方法如下:
在project同名文件夾下的__init__文件中添加如下代碼即可:
import pymysql
pymysql.install_as_MySQLdb()
2. 對于單表的增刪改查詢
查詢
獲取所有結(jié)果,獲取到的結(jié)果是一個(gè)QuerySet的類似列表的對象,每一個(gè)元素本身又是一個(gè)對象,包括了id,name,password等屬性。
obj = models.UserInfo.objects.all()
可以通過filter進(jìn)行過濾,相當(dāng)于sql的where語句,因?yàn)榻Y(jié)果也是QuerySet,因此需要再使用first()獲取第一個(gè)值
obj = models.UserInfo.objects.filter(id=nid).first()
增加
models.UserInfo.objects.create(username=u,password=p,user_group_id=3)
刪除,可以在filter的基礎(chǔ)上進(jìn)行刪除
models.UserInfo.objects.filter(id=nid).delete()
修改,有兩種常見方式
第一個(gè)方式
models.UserInfo.objects.filter(id=nid).update(username=u,password=p)
第二個(gè)方式
obj=models.UserInfo.objects.filter(id=nid) obj.username=u obj.save()
本文題目:Django數(shù)據(jù)庫ORM操作-單表的創(chuàng)建,增加,刪除,更改和查詢
當(dāng)前鏈接:http://www.ef60e0e.cn/article/gijhoc.html