Django面面觀(三)

數(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è)面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容