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)