1. 程式人生 > >用Django裡面的models操作資料庫

用Django裡面的models操作資料庫

1.首先進入settings裡面


2.在models裡面宣告資料型別

    2.1 首先引入需要的工具包

import MySQLdb

    2.2    建立table表各個欄位的型別


models.AutoField 自增列= int(11) 
如果沒有的話,預設會生成一個名稱為 id 的列,如果要顯示的自定義一個自增列,必須將給列設定為主鍵 primary_key=True

 2.3 自定義表的名稱


2.4 執行完上述接下來就是執行命令對錶進行建立了

開啟run manage.py task ,執行makemigrations 生成資料庫變更檔案

執行migrate命令,執行資料庫變更檔案


如果需要對資料模型類做修改,要先執行makemigrations生成資料模型變更檔案,在執行migrate 執行變更檔案

執行完已經完成了對資料庫表格的建立

下面就是對資料庫進行增刪改查了

首先要引入在models中建立的類

from .models import MesModel

1、查

查詢資料庫中的所有資料,得到的是一個列表,列表中存放資料物件,最後需要用一個變數接收

rs=MesModel.objects.all()

get()得到一個指定條件的物件,左右也需要用一個變數接收,value指的是欄位名,是一行

rs=MesModel.objects.get(value=)
例如
MesModel.objects.get(id=1)就是取出id=1的這一行資料
rs=MesModel.objects.all().values('')   只取出表中的某一列
rs=MesModel.objects.all().values_list('','') 取出表中的某兩列,得到的是一個列表

根據條件篩選多條資料

大於 id__gt   小於 id__lt  大於等於 id__gte  小於等於  id__lte

查詢的id大於1的資料

msgs = MesModel.objects.filter(id__gt = 1)
msgs=MesModel.objects.filter(id__lt=10, id__gt=1) # 獲取id大於1 且 小於10的值
msgs=MesModel.objects.filter(id__in=[11, 22, 33]) # 獲取id等於11、22、33的資料
msgs=MesModel.objects.exclude(id__in=[11, 22, 33]) # not in
msgs=MesModel.objects.filter(id__range=[1, 2]) # 範圍bettwen and
msgs=MesModel.objects.filter(name__contains="ven")
msgs=MesModel.objects.filter(name__icontains="ven") # icontains大小寫不敏感
msgs=MesModel.objects.exclude(name__icontains="ven")

2.增加

    2.1.建立物件之後,會將物件的資訊直接儲存到資料庫

MesModel.objects.create(name=name,email=email,address=address,suggest=message)

    2.2建立物件 再給物件屬性賦值,如需儲存需要呼叫save()函式
     

   msg = MesModel(name=name,email=email,address=address,suggest=message)

       執行save函式相當於執行了 insert into message (name,email,address,suggest) values('小明','[email protected]','鄭州','沒有建議') 這個sql語句

  msg.save()

    2.3.get_or_create 先獲取是否有該資料,如果沒有在進行新增

        返回結果是一個元組,元組中存放建立的物件,建立結果True/False

        try:
            res = MesModel.objects.get_or_create(name=name,email=email,address=address,suggest=message)
        except Exception as e:
            return HttpResponse('該id已存在,請檢查後重新輸入')
3.修改

我們已經通過上面的查詢獲得了某一條資料 返回的是物件,直接通過物件.屬性就可以實現資料庫的修改

最後物件.save()儲存就可以了

4.刪除

        通過查詢到某一條資料後直接.delete()就可以

        例如:

                    MesModel.objects.get(id=1).delete()




相關推薦

Django裡面的models操作資料庫

1.首先進入settings裡面2.在models裡面宣告資料型別    2.1 首先引入需要的工具包import MySQLdb    2.2    建立table表各個欄位的型別models.AutoField 自增列= int(11) 如果沒有的話,預設會生成一個名稱為

如何使用Django模型Models資料庫進行增刪改查

Django的抽象模型Models可以直接對資料庫進行增刪改查,不需要你自己寫SQL語言來進行相關資料庫操作。今天我們就以部落格blog為例,看下Django是如何對資料庫進行增刪改查的。我們將會用到如

Django之ORM操作資料庫

1、配置資料庫vim settings #HelloWorld/HelloWorld目錄下DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',  #mysql資料庫中第一個庫tes

HelloDjango 系列教程:第 04 篇:Django 遷移、操作資料庫

文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫 我們已經編寫了部落格資料庫模型的程式碼,但那還只是 Python 程式碼而已,django 還沒有把它翻譯成資料庫語言,因此實際上這些資料庫表還沒有真正的在資料庫中建立。 遷移資料庫 為了讓 django 完成翻譯,建立好這

【Mac系統 + Python + Django】之開發一個釋出會系統【Django模型(二)】 【Mac系統 + Mysql】之安裝Mysql資料庫 【Python + Mysql】之pymysql庫連線Mysql資料庫並進行增刪改查操作

上一部分給大家介紹Django的檢視。 接下來繼續來了解Django框架,來看第二部分,此部分是對資料庫的操作。   目錄: 一、設計系統表 二、admin後臺管理 三、基本資料訪問(SQLite資料庫) 四、Django配置MySQL   &

djangomodels.py數據庫同步操作技巧

app 技巧 修改 wmi 終極 del 名稱 .py 認識 一、認識一個目錄:目錄名:migrations作用:用來存放通過makemigrations命令生成的數據庫腳本,不熟悉的情況下,裏面生成的腳本不要輕易修改。app目錄下必要有migrations的目錄且該目錄下

自己寫的py文件中調django models

文件 color from col settings try div name bject import os os.environ[‘DJANGO_SETTINGS_MODULE‘] = ‘項目名.settings‘import djangodjango.setup()

Django中使用mysql資料庫並使用原生sql語句操作

Django自身預設使用sqlite3這個輕量級的資料庫,但是當我們開發網站時,sqlite3就沒有mysql好,sqlite3適合一些手機上開發使用的資料庫。 準備的軟體 mysql資料庫,版本5.7及以上。 navicat,(可選的)。使用navicat主要是簡化我

西遊之路——python全棧——djangomodels配置 python---django使用資料庫(orm)

目錄   Django支援多種資料庫,sqlite,mysql,oracle等,其預設資料庫是sqlite 在settings檔案中可以發現: DATABASES = { 'default': { 'ENGINE': '

phppdo操作資料庫,進行分頁時,$pageSize出現錯誤,怎麼回事

在用pdo操作資料庫的時候,一定要注意傳參得順序, 比我我這裡傳參順序錯了,弄了一個半小時才解決: // 分頁的演算法 public function pages($page, $pageSize = 2) { $count = $this->c

重新命名資料報錯:無法排他鎖鎖定該資料庫,以執行該操作。 (Microsoft SQL Server,錯誤: 5030)

一般來說,在確保沒有客戶端連線的情況下,重新命名資料庫不會報這個錯 解決方法: Use master  EXEC sp_dboption 'OldDbName', 'Single User', 'TRUE'  EXEC sp_renamedb 'OldDbName',

Django學習筆記009-django models進行資料庫增刪查改

引入models的定義 from app.models import  myclass class  myclass():      aa =  models. CharField (max_len

######業務儘可能sql實現(縮短後臺響應時間):最近都在優化之前的程式碼:發現每個模組的index頁都需要優化(很多都在迴圈裡操作資料庫:菜!初級!)

  ###最近都在優化之前的程式碼: 發現每個模組的index頁都需要優化(很多都再迴圈裡操作資料庫:菜!初級!或者說趕專案沒想優化這回事吧) ===》解耦合前提下,能用一條SQL解決的,多測試寫SQL。可以減少很多程式碼。 希望我在疲憊,腦子不好使時候也能堅持吧。(注意休

Django在根據models生成資料庫表時報 __init__() missing 1 required positional argument: 'on_delete'

在runserver時報錯如題資訊 TypeError: __init__() missing 1 required positional argument: 'on_delete'   在models中沒有對外來鍵進行關聯, 原因: 在django2.0後,

Django入門二之models操作試驗

第一部分: 1.使用 manage.py 工具載入我們的專案來啟動 Python shell : (env) D:\Development\myproject\myproject>python manage.py shell Python 3.6.4 (v3.6.4

不使用spring的情況下java原生程式碼操作mongodb資料庫的兩種方式

由於更改了mongodb3.0資料庫的密碼,導致這幾天storm組對資料進行處理的時候,一直在報mongodb資料庫連線不上的異常。 主要原因實際上是和mongodb本身無關的,因為他們改的是配

(5) ebj學習:ejbjpa操作資料庫1

一 JPA開發持久化Bean 二 配置資料來源 三 新建Ejb專案 四 指定JNDI資料來源 五 編寫entity bean 六 程式碼 1 目錄結構 2 Person.java im

.NET MVC 操作資料庫到的一些方法

1. LINQ  1.select * from [table] 用 LINQ 寫 var linq = (from t in db.table select t ).ToList() 2. select 欄位 from [table]

django戶權限操作

ces 新增 超級 比較 請求方法 get else model har 第一步:創建數據庫和超級管理員,為了比較方便使用(裏面有些的是沒用的),額外新增 chioces , per_method , argument_list # 用戶權限# 建立一個權限表,將映射關系

043:Django使用原生SQL語句操作資料庫

Django使用原生SQL語句操作資料庫 Django配置連線資料庫:   在操作資料庫之前,首先先要連線資料庫。這裡我們以配置 MySQL 為例來講解。 Django 連線資料庫,不需要單獨的建立一個連線物件。只需要在 settings.py 檔案中做好資料庫相關的配置就可以了。示例程式碼如下: