Django 數(shù)據(jù)庫與模型(上)

在之前,我們寫出了一個(gè)視圖,但這還遠(yuǎn)遠(yuǎn)達(dá)不到我們的需求!

數(shù)據(jù)庫配置


首先請打開projectname/projectname/settings.py

默認(rèn)情況下,Django為你提供了sqlite3,如果你不擅長其他數(shù)據(jù)庫并且只是想學(xué)習(xí)一下Django,可以直接跳過這一步

但有的人則不同,我們學(xué)習(xí)它就是為了在生產(chǎn)環(huán)境中使用,所以我們要選擇一些更具可伸縮性的數(shù)據(jù)庫例如PostgreSQL、MySQL,在這里我們以MySQL為主

打開settings.py后,找到DATABASES,修改為以下內(nèi)容

DATABASES = {

????'default': {

????????'ENGINE': 'django.db.backends.mysql',

????????'NAME': 'dbname',

????????'HOST': 'localhost',

????????'USER': 'root',

????????'PASSWORD': 'password',

????????'PORT': '3306',

????}

}

請根據(jù)你對數(shù)據(jù)庫的配置修改相應(yīng)的參數(shù)

同時(shí),找到TIME_ZONE并設(shè)置為我們的市區(qū)

TIME_ZONE = 'Asia/Shanghai'

注意,是Shanghai,不是Beijing

接著,運(yùn)行該指令

python manage.py migrate

Django自帶的一些應(yīng)用也使用到了數(shù)據(jù)庫,你需要運(yùn)行該函數(shù)創(chuàng)建數(shù)據(jù)表

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.

這時(shí),使用MySQL的人會(huì)發(fā)現(xiàn)出現(xiàn)了問題!提示我們沒有安裝MySQLdb,有的人會(huì)立刻“pip install MySQLdb”,然后發(fā)現(xiàn)又出現(xiàn)了問題!

不要繼續(xù)折騰了,MySQLdb模塊不支持python3,所以我們應(yīng)該使用pymysql

pip install pymysql

然后打開projectname/projectname/__init__.py,添加以下代碼

import pymysql

pymysql.install_as_MySQLdb()

接著,我們再次執(zhí)行migrate命令,如果數(shù)據(jù)庫配置沒有問題的話,它就會(huì)自動(dòng)開始數(shù)據(jù)表創(chuàng)建了

創(chuàng)建模型


數(shù)據(jù)庫配置好后,我們就要開始編寫模型了!

打開projectname/appname/models.py

首先我們試著創(chuàng)建一個(gè)簡單的模型,在原有代碼里加入以下內(nèi)容

class User(models.Model):

????UserID = models.IntegerField(default = 0)

????UserName = models.CharField( max_length = 100)

????UserPass = models.CharField( max_length = 300)

暫時(shí)我們不用過度關(guān)系這些東西是做什么的,我們我們開始激活模型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容