python django mysql配置
- 2020 年 5 月 2 日
- 筆記
1 django默認支援sqlite,mysql, oracle,postgresql資料庫。
<1> sqlite
django默認使用sqlite的資料庫,默認自帶sqlite的資料庫驅動 , 引擎名稱:django.db.backends.sqlite3
<2> mysql
引擎名稱:django.db.backends.mysql
2 mysql驅動程式
- MySQLdb(mysql python)
- mysqlclient
- MySQL
- PyMySQL(純python的mysql驅動程式)
3 在django的項目中會默認使用sqlite資料庫,在settings里有如下設置:
如果我們想要更改資料庫,需要修改如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'books', #你的資料庫名稱 'USER': 'root', #你的資料庫用戶名 'PASSWORD': '', #你的資料庫密碼 'HOST': '', #你的資料庫主機,留空默認為localhost 'PORT': '3306', #你的資料庫埠 } }
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() 問題解決!
創建資料庫
先用MySQL 創建一個資料庫

然後在model.py裡面寫數據表

class Book(models.Model): # id = name = models.CharField(max_length=20) price = models.FloatField() pub_date = models.DateField() class Author(models.Model): name = models.CharField(max_length=32)
在terminal運行python manage.py makemigrations
D:\pycharm\python_s3\Django_ORM>python manage.py makemigrations Migrations for 'app01': app01\migrations\0002_author.py - Create model Author
在terminal運行python manage.py migrat
D:\pycharm\python_s3\Django_ORM>python manage.py migrat Unknown command: 'migrat'. Did you mean migrate? Type 'manage.py help' for usage.
表就建好了

