1. 程式人生 > >Python3+Django+Mysql配置

Python3+Django+Mysql配置

最近需要做一個web專案,想來想去選擇了django,這也是我在python上第一次寫web專案了。既然是個專案,那必然會用到資料庫,django自帶的sqllite資料庫感覺太小兒科,所以想換成mysql了,下面講講我的配置過程和踩過的坑。

環境:Python 3.6 , Django 1.9 , Mysql

在django的settings.py指令碼中把sqllite的連線配置改成mysql:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '資料庫名',
        'USER':'root',
        'PASSWORD':'mysql密碼',
        'HOST':'你的mysql伺服器地址',
        'PORT':'',
    }
}

這個連線配置沒什麼好說的,其中PORT如果你留空的話預設是3306埠,如果你設定了別的埠的話,可以填上去。

這時候執行程式,你會發現報錯!它會提示找不到MySQLdb

我找了很久才發現MySQLdb沒有python3的支援庫,他們官方網站也是這麼寫的!然後找到了python3上可以執行的pymysql庫。具體配置方法:

首先pip安裝一下

pip install pymysql

然後在django的settings.py指令碼中加上這兩行:
import pymysql
pymysql.install_as_MySQLdb()

接下來試驗一下剛配置的環境能不能執行,在models.py檔案中新建一個User model:

class User(models.Model):
    username = models.CharField(max_length = 30)
    def __unicode__(self):
        return self.username

然後讓django為我們自動同步這個model,也就是說django在mysql自動建立User model對應的表:

這裡有個坑!(如果你用1.6以下版本的django的話你可以用manage.py syncdb命令,如果你用了1.6以上版本的話你得用 manage.py migrate命令)

manage.py migrate
控制檯顯示建立user表

就這樣配置完了,接下來可以愉快碼程式碼了。