Django模塊之ORM

django模塊的settings

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'bms',           # 要連接的數據庫,連接前需要創建好
        'USER':'root',        # 連接數據庫的用戶名
        'PASSWORD':'123456',        # 連接數據庫的密碼
        'HOST':'127.0.0.1',       # 連接主機,默認本級
        'PORT':3306            #  端口 默認3306
    }
}

注意1:NAME即數據庫的名字,在mysql連接前該數據庫必須已經創建,而上面的sqlite數據庫下的db.sqlite3則是項目自動創建 USER和PASSWORD分別是數據庫的用戶名和密碼。設置完後,再啓動我們的Django項目前,我們需要激活我們的mysql。然後,啓動項目,會報錯:no module named MySQLdb 。這是因爲django默認你導入的驅動是MySQLdb,可是MySQLdb 對於py3有很大問題,所以我們需要的驅動是PyMySQL 所以,我們只需要找到項目名文件下的__init__,在裏面寫入:

import pymysql
pymysql.install_as_MySQLdb()

先建數據庫(Python無法建數據庫)

models.py建表結構

from django.db import models

# Create your models here.


class Book(models.Model):
     id=models.AutoField(primary_key=True)
     title=models.CharField(max_length=32)
     state=models.BooleanField()
     pub_date=models.DateField()
     price=models.DecimalField(max_digits=8,decimal_places=2)
     publish=models.CharField(max_length=32)

最後通過兩條數據庫遷移命令即可在指定的數據庫中創建表 :

python3 manage.py makemigrations
python3 manage.py migrate

注意2:確保配置文件中的INSTALLED_APPS中寫入我們創建的app名稱
然後在view.py調用的時候,導入models.book(表名)

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

注意3: 如果想打印orm轉換過程中的sql,需要在settings中進行如下配置(在命令行中打印出來):

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}

插入表的方法

第一種

book_obj = book(id=1,name="aaa",price=200)
book_obj.save()

第一種

book_obj = book.objects.insert(id=1,name="aaa",price=200)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章