python django mysql配置

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.

表就建好了

 

Tags: