昨天剛剛看了下Django的教程赶盔,決定把數(shù)據(jù)庫改成mysql企锌,嗯~原本以為挺簡單的改個引擎就行。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'test',
'USER':'root',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}
在改完settings.py后開開心心的執(zhí)行python3 manage.py runserver
等待服務(wù)啟動中.......
咦報錯于未。撕攒。。烘浦。
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
仔細一看哦原來是只要安裝一下mysqldb這個擴展就好
于是乎 pii3 install mysqldb
應(yīng)該可以完成了吧~等待安裝......
yiyelo又報錯
error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).
好吧抖坪,繼續(xù)百度要安裝這個。闷叉。擦俐。。要安裝那個握侧。蚯瞧。嘿期。÷窈希總而言之就是一直安裝別的東西备徐,然后搗鼓了4,5個小時還沒弄出來
進入正題
在搜索中發(fā)現(xiàn)原來python3已經(jīng)用pymysql代替了mysqldb~
bow!bow!bow!內(nèi)心既開心又奔潰甚颂,一臉黑線~
Django鏈接mysql步驟:
- 先檢驗有沒有安裝pymysql包坦喘,即import pymysql,如果導(dǎo)入失敗的話用pip install pymysql安裝
- 修改settings.py里的DATABASES字段:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'test',
'USER':'root',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}
- 很關(guān)鍵的一步,在項目的init.py文件下加入如下語句:
import pymysql
pymysql.install_as_MySQLdb()
- 使用python manage.py runserver運行服務(wù)器成功
使用mysql
數(shù)據(jù)遷移
- 在models.py下創(chuàng)建好model
class User(models.Model):
class Meta:
db_table = 'usertest'
id = models.IntegerField(db_column='UID', primary_key=True)
userName = models.CharField(max_length=255, db_column='username', blank=False)
passWord = models.CharField(max_length=255, db_column='password', blank=False)
cid = models.IntegerField( db_column='CID', blank=False)
對應(yīng)關(guān)系西设,一個表對應(yīng)一個類瓣铣,表中的字段為類的屬性,db_table為表名贷揽。
User是在django中操作的句柄
- 執(zhí)行python3 manage.py makemigrations app名(可選)生成遷移文件
添加了app名則只對該app生成遷移文件棠笑,默認全部
- 可執(zhí)行python manage.py sqlmigrate blog 0001查看生成的msyql語句
0001是生成遷移文件的編號,對應(yīng)各自app的migrations目錄下的.py文件
- 執(zhí)行python3 manage.py migrate進行遷移操作
查找數(shù)據(jù)
單表查詢:
總結(jié)
寫的不是很好禽绪,希望可以幫助到大家蓖救,如有錯誤歡迎在評論區(qū)指出
接下來感謝兩位大神給我靈感,附上他們文章的鏈接
http://blog.csdn.net/it_dream_er/article/details/52093362
http://blog.csdn.net/winsonyuan/article/details/51500122