1. 程式人生 > >【day 11】python程式設計:從入門到實踐學習筆記-基於Django框架的Web開發-Django入門(二)

【day 11】python程式設計:從入門到實踐學習筆記-基於Django框架的Web開發-Django入門(二)

學習筆記目錄

第十八章 Django入門(二)

建立應用程式

django專案由一系列應用程式組成,他們協同工作,讓專案稱謂一個整體。首先我們執行命令python manage.py startapp learning_logs

定義模型
開啟剛剛我們建立的資料夾,並修改models.py:

from django.db import models
class Topic(models.Model):
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True
) def __str__(self): return self.text

我們為模型建立了一個名為Topic的類,他繼承了Model——django中一個定義模型基本功能的類。Topic類只有兩個屬性:textdate_added
text是一個CharField——由字元或文字組成的資料,可儲存少量文字。傳入引數**max_length**為文字最大長度。
date_added是一個DateField——記錄日期和時間的資料。傳入的實參auto_add_now=True告訴django每當使用者新建主題時,將這個屬性自動設定為當前日期和時間。

啟用模型


開啟learning_log中的setting.py並新增

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'learning_logs', #<-here
]

這是一個元組,包含了django專案中的所有應用程式。接著執行python manage.py makemigrations learning_logs

讓django確定如何修改資料庫。最後應用遷移,執行python manage.py migrate

Django管理網站
1.建立超級使用者,執行命令python manage.py createsuperuser

2.向管理網站註冊模型,開啟 learning_logs下的admin.py,並修改為:

from django.contrib import admin
from learning_logs.models import Topic
admin.site.register(Topic)

這寫程式碼匯入了我們要註冊的模型Topic,接著使用admin.site.register(Topic)讓django通過管理網站管理我們的模型。
接著執行伺服器,訪問http://127.0.0.1:8000/admin並使用著急使用者帳號密碼登入。

3.新增主題,點選Topic之後進入主題網頁,此時可以通過點選add進行主題的新增,新增完成之後點選save進行儲存。

定義模型Entry

learning_logs\models.py
from django.db import models

class Topic(models.Model):
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.text

class Entry(models.Model):
    topic = models.ForeignKey(Topic)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = 'entries'

    def __str__(self):
        return self.text[:50] + "..."

ForeignKey是資料庫的外來鍵,引用資料庫中的另一個記錄。Entry類中的Meta類用於儲存管理模型的額外資訊,這裡設定了一個特殊屬性,讓django在需要時使用 Entries 來表示多個條目。

遷移模型Entry
由於我們添加了一個新模型,因此需要再次遷移資料庫。執行命令python manage.py makemigrations learning_logs以及python manage.py migrate.

向管理網站註冊Entry
修改如下檔案

learning_logs\admin.py
from django.contrib import admin

from learning_logs.models import Topic, Entry

admin.site.register(Topic)
admin.site.register(Entry)

返回管理網站可以發現多了一個板塊

接著點選新板塊的add新增以下主題和討論,並點選儲存給我們之後測試使用。
國際象棋:The opening is the first part of the game, roughly the first ten moves or so. In the opening, it’s agood idea to do three things— bring out your bishops and knights, try to control the center of theboard, and castle your king.
攀巖:One of the most important concepts in climbing is to keep your weight on your feet asmuch as possible. There’s a myth that climbers can hang all day on their arms. In reality, goodclimbers have practiced specific ways of keeping their weight over their feet whenever possible

django shell
在輸入以上資料之後,可以通過互動式終端會話訪問這些資料,在測試專案和排除故障的時候會用上。執行命令python manage.py shell可以開啟shell會話。

相關推薦

no