Django orm的使用

ORM:關係對象映射。定義一個類自動生成數據庫的表結構。

ORM分爲兩種:

DB First 數據庫裏先創建數據庫表結構,根據表結構生成類,根據類操作數據庫
Code First 先寫代碼,執行代碼創建數據庫表結構
主流的orm都是code first。django 的orm也是code first,所以學的時候,本質就分爲兩塊:

根據類自動創建數據庫表
根據類對數據庫表中的數據進行各種操作

一、Django連接MySQL
1、使用orm之前必須先創建數據庫

create database cmdb_kk2 default charset utf8;

2、修改project中的settings.py文件中設置 連接 MySQL數據庫(Django默認使用的是sqllite數據庫)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'cmdb_kk2',
        'HOST': '192.168.1.48',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '123456',
        'CHARSET': 'utf8',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
        }
    }
}

python manage.py makemigrations #根據app下的migrations目錄中的記錄,檢測當前model層代碼是否發生變化?如果新增或者修改一個字段就會有變化

python manage.py sqlmigrate user 0001 #查看生成的sql
python manage.py migrate #針對所有的app 把orm代碼轉換成sql語句去數據庫執行
python manage.py migrate user #只對user 這個app_name 更新sql到數據庫

Django orm的使用

Django orm的使用

執行:python manage.py migrate 後默認表名:appname_classname。user_user

連接操作使用:
python manage.py shell

>> from django.db import models
>> from user.models import User
>> User.objects.all()
<QuerySet [<User: User object (1)>]>

增加:

>> from datetime import datetime
>> datetime.now():當前時間
>> User.objects.create(name="kk2",password="123",create_time=datetime.now())
<User: User object (4)>

刪除(id=4):

>> User.objects.filter(id=4).delete()
(1, {'user.User': 1})

.>>> User.objects.all().delete() #刪除所有的

更新,密碼都改爲8888

>> User.objects.all().update(password=8888)
3

>> User..objects.filter(id=3).update(password=888888)

#實例化對象,新增數據

>> user=User()
>> user
<User: User object (None)>
>> user.name='kk'
>> user.name='python'
>> user.age='123'
>> user.passwod='123'
>> user.create_time=datetime.now()
>> user.tel='123'
>> user.save() #save後就會保存到數據庫中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章