Python3+Django+Mysql配置
阿新 • • 發佈:2019-02-05
最近需要做一個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表
就這樣配置完了,接下來可以愉快碼程式碼了。