數(shù)據(jù)庫(kù)設(shè)置(DATABASES)
文件mysite/settings.py里,包含了按模塊級(jí)別的設(shè)置。
默認(rèn)使用SQLite,它已經(jīng)包含在Python里了。如果希望使用其他數(shù)據(jù)庫(kù),可以改變DATABASES ‘default’項(xiàng)。
1.ENGINE??蛇x內(nèi)容包括’django.db.backends.sqlite3’、’django.db.backends.postgresql’、’django.db.backends.mysql’、’django.db.backends.oracle’等等。
2.NAME。數(shù)據(jù)庫(kù)名稱(chēng)。
3.USER。數(shù)據(jù)庫(kù)用戶。
4.PASSWORD。數(shù)據(jù)庫(kù)密碼。
5.HOST。數(shù)據(jù)庫(kù)主機(jī)。
6.PORT。數(shù)據(jù)庫(kù)端口。
時(shí)區(qū)(TIME_ZONE)
設(shè)置本地時(shí)區(qū)
安裝的應(yīng)用(INSTALLED_APPS)
1.django.contrib.admin。管理員站點(diǎn)。
2.django.contrib.auth。驗(yàn)證系統(tǒng)。
3.django.contrib.contenttypes。內(nèi)容類(lèi)型框架。
4.django.contrib.sessions。會(huì)話框架。
5.django.contrib.message。消息框架。
6.django.contrib.staticfiles。管理靜態(tài)文件。
這些默認(rèn)都自動(dòng)安裝了。
數(shù)據(jù)庫(kù)遷移
$ python manage.py migrate
數(shù)據(jù)遷移只針對(duì)已安裝的應(yīng)用。
創(chuàng)建models(數(shù)據(jù)模型)
對(duì)于投票系統(tǒng),我們創(chuàng)建兩個(gè)數(shù)據(jù)模型,Question和Choise。
Question包括question和發(fā)布日期,Choise包括選項(xiàng)文本和票數(shù)。
polls/models.py
from django.db import models
class Question(models.Model):
? ? question_text = models.CharField(max_length=200)
? ? pub_date = models.DateTimeField('date published')
class Choice(models.Model):
? ? question = models.ForeignKey(Question, on_delete=models.CASCADE)
? ? choice_text = models.CharField(max_length=200)
? ? votes = models.IntegerField(default=0)
激活models(使用數(shù)據(jù)模型)
把polls應(yīng)用添加到INSTALLED_APPS模塊中。
mysite/settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
然后執(zhí)行數(shù)據(jù)遷移。
$ python manage.py makemigrations polls
總的來(lái)說(shuō),可分為三步:
1.改變數(shù)據(jù)模型,修改models.py文件
2.執(zhí)行 python manage.py make migrations。創(chuàng)建這些改變的遷移。
3.執(zhí)行 python manage.py migrate 。應(yīng)用這些改變到數(shù)據(jù)庫(kù)中。
玩轉(zhuǎn)API
$ python manage.py shell
Django Admin
按提示,創(chuàng)建超級(jí)管理員
$ python manage.py createsuperuser
啟動(dòng)服務(wù)后,可以登錄admin站點(diǎn)。
添加管理員面板功能
在管理站點(diǎn)添加poll應(yīng)用可修改,通知admin Question對(duì)象有admin接口。
polls/admin.py
from django.contrib import admin
from .models import Question
admin.site.register(Question)
1.Question會(huì)自動(dòng)生成Form。
2.不同字段類(lèi)型會(huì)關(guān)聯(lián)到HTML中相應(yīng)的輸入控件。
3.DateTimeField會(huì)取到JS日期快捷日歷。
按鈕有如下選項(xiàng)。
1.save。保存改變項(xiàng),返回改變列表。
2.save和continue editing。保存改變項(xiàng),重新加載管理頁(yè)面。
3.save和add another。保存改變項(xiàng),加載新的添加項(xiàng)頁(yè)面。
4.delete。顯示刪除確認(rèn)頁(yè)面。