Django 數據庫ORM操做 - 單表的建立,增長,刪除,更改和查詢

Django裏面,管理數據庫和sqlarchemy相似,也是經過orm框架來實現的。全部的數據庫的創建,都是在model.py裏面經過類來實現的。python


首先看看如何建立一個單表:mysql

a. 先定義一個類,繼承models.Model, 而後根據需求定義參數,這些參數的類型和變量後面會進一步闡述sql

models.py數據庫

from django.db import models

class UserInfo(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)


b. 註冊appdjango

settings.pysession

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',
]


c.執行命令。 第一條命令會生成一個初始化文件,第二個命令會生成對應的表app

python manage.py  makemigrations
python manage.py  migrate

wKiom1ljB5WTk3bMAAA-oql4Ri0445.jpg


這樣,就在PyCharm自帶的sqlite數據庫裏面成功的生成了一個app01_UserInfo的表。這個表默認會有一個自增的id做爲主鍵,另外兩個字段是咱們經過類建立的。框架


d. 若是但願使用mysql,由於Django默認使用了MySqldb模塊,這個在3.0版本里面不存在,會直接報錯。咱們須要改成pymysql的模塊,方法以下:ide

在project同名文件夾下的__init__文件中添加以下代碼便可:spa

import pymysql

pymysql.install_as_MySQLdb()

wKioL1ljCLaAUyndAAApE1TYVRg887.jpg-wh_50


2. 對於單表的增刪改查詢


查詢

獲取全部結果,獲取到的結果是一個QuerySet的相似列表的對象,每個元素自己又是一個對象,包括了id,name,password等屬性。


obj = models.UserInfo.objects.all()

<QuerySet [<UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>]>


能夠經過filter進行過濾,至關於sql的where語句,由於結果也是QuerySet,所以須要再使用first()獲取第一個值

 obj = models.UserInfo.objects.filter(id=nid).first()


增長

models.UserInfo.objects.create(username=u,password=p,user_group_id=3)


刪除,能夠在filter的基礎上進行刪除

models.UserInfo.objects.filter(id=nid).delete()


修改,有兩種常見方式

第一個方式

models.UserInfo.objects.filter(id=nid).update(username=u,password=p)


第二個方式

obj=models.UserInfo.objects.filter(id=nid)
obj.username=u
obj.save()
相關文章
相關標籤/搜索