<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Django Blog|03 創(chuàng)建一個blog app和Article模型

          共 3005字,需瀏覽 7分鐘

           ·

          2021-10-24 09:39

          作者:老表
          來源:簡說Python

          大家好,我是老表,這個系列將會更新我編寫,項目的學(xué)習(xí)筆記,也是后面更新的一個重點,希望個人博客頁面可以早點和大家見面~歡迎大家點贊、留言支持。

          Django Blog|01 創(chuàng)建環(huán)境和項目

          Django Blog|02 創(chuàng)建admin賬戶&settings.py介紹

          創(chuàng)建blog app

          首先在vscode中我們啟動調(diào)試項目,然后打開終端,進入到對應(yīng)項目目錄下,執(zhí)行命令pipenv shell即可進入虛擬環(huán)境,然后再執(zhí)行下面命令創(chuàng)建一個admin賬戶,

          python?manage.py?startapp?blog

          運行后,我們看目錄結(jié)構(gòu),會發(fā)現(xiàn)多了一個blog目錄,也就是我們剛剛創(chuàng)建的一個app,這里需要說明下myblog是我們創(chuàng)建項目時的目錄,可以理解為程序的入口,包含了配置文件、系統(tǒng)路由和web服務(wù)網(wǎng)關(guān)接口配置。

          關(guān)于新創(chuàng)建的app blog目錄下的文件簡介(簡單介紹):

          • migrations 遷移文件,主要存放從models遷移到數(shù)據(jù)庫的數(shù)據(jù)庫操作語句;
          • admin.py 注冊模型文件,注冊后的模型可以在admin管理后臺顯示;
          • apps.py 可以在里面額外設(shè)置程序配置,并應(yīng)用配置;
          • models.py 數(shù)據(jù)模型文件,數(shù)據(jù)庫設(shè)計主要在這里,直接創(chuàng)建類對象即可;
          • tests.py 測試文件,主要用于app測試;
          • views.py 視圖文件,主要寫功能實現(xiàn)函數(shù);
          • urls.py(需要自己創(chuàng)建) 路由文件,注意聲明路由關(guān)系。

          在settings中注冊新創(chuàng)建的app

          創(chuàng)建好app,首先需要在settings中的INSTALLED_APPS中添加上新創(chuàng)建的app,

          INSTALLED_APPS?=?[
          ????'django.contrib.admin',
          ????...
          ????'blog',??#?博客app
          ]

          創(chuàng)建Article Models

          進入到blog/models.py,我們先創(chuàng)建一個Article模型,文章模型主要包括文章作者、文章標(biāo)題、文章概要和文章正文這四個屬性,其他還應(yīng)該添加屬性有:標(biāo)題圖、文章標(biāo)簽、瀏覽量等,方便入門學(xué)習(xí),其余屬性后期再添加:

          from?django.db?import?models
          from?django.contrib.auth.models?import?User

          #?Create?your?models?here.
          class?Article(models.Model):
          ????"""
          ????創(chuàng)建一個基本的文章對象
          ????包括:作者、標(biāo)題、概要、正文
          ????后期需要添加:標(biāo)題圖、文章標(biāo)簽、瀏覽量等
          ????"""

          ????#?文章作者,author?通過?models.ForeignKey?外鍵與系統(tǒng)自帶的?User?模型關(guān)聯(lián)在一起
          ????#?參數(shù) on_delete 用于指定數(shù)據(jù)刪除的方式,避免兩個關(guān)聯(lián)表的數(shù)據(jù)不一致。
          ????author?=?models.ForeignKey(User,?on_delete=models.CASCADE)
          ????#?文章標(biāo)題
          ????title?=?models.CharField(max_length=255,?null=False,?blank=False)
          ????#?文章概要
          ????summary?=?models.CharField(max_length=255,?null=False,?blank=False)
          ????#?文章正文
          ????content?=?models.TextField()
          ????
          ????#?內(nèi)部類?class?Meta?用于給?model?定義元數(shù)據(jù)
          ????class?Meta:
          ????????#?ordering?指定模型返回的數(shù)據(jù)的排列順序
          ????????#?'-title'?表明數(shù)據(jù)列表顯示按標(biāo)題名稱降序排列
          ????????ordering?=?('-title',)
          ????????#?db_table?歉意映射到數(shù)據(jù)庫后的表名
          ????????db_table?=?'tb_article'
          ????????#?django后臺管理系統(tǒng)顯示名稱
          ????????verbose_name?=?'文章管理'
          ????????verbose_name_plural?=?verbose_name

          ????#?函數(shù)?__str__?定義當(dāng)調(diào)用對象的?str()?方法時的返回值內(nèi)容
          ????#?它最常見的就是在Django管理后臺中做為對象的顯示值。因此應(yīng)該總是為?__str__?返回一個友好易讀的字符串
          ????def?__str__(self):
          ????????#?將文章標(biāo)題返回,django后臺管理系統(tǒng)顯示條目名稱
          ????????return?str(self.author)?+?'-'?+?self.title

          創(chuàng)建好模塊后,我們需要將Article模型注冊到blog/admin.py中,這樣才會在后臺管理系統(tǒng)中顯示,

          from?django.contrib?import?admin
          from?blog.models?import?Article

          #?Register?your?models?here.
          #?注冊模型
          admin.site.register(Article)

          另外我們還需要在終端執(zhí)行遷移命令,這樣系統(tǒng)就會自動根據(jù)Article模型中的屬性幫我們在數(shù)據(jù)庫中創(chuàng)建對應(yīng)的表了。

          #?進入虛擬環(huán)境后執(zhí)行以下命令
          python?manage.py?makemigrations
          python?manage.py?migrate

          完成上述設(shè)置后,我們完成了模型的創(chuàng)建和注冊,以及遷移映射到數(shù)據(jù)庫,接下來我們可以啟動程序后直接瀏覽器訪問http://127.0.0.1:8000/admin,如果需要登錄,就直接用之前創(chuàng)建的admin賬號登錄即可,登錄之后我們可以看到我們新建的文章管理模塊。點擊進入文章管理模塊,我們可以對文章進行增刪查改的操作,默認(rèn)是空的,下面我已經(jīng)新增了一篇。我們可以點擊增加 文章管理,就可以新建一篇文章了,我們選擇作者(和系統(tǒng)中的user是聯(lián)系起來的,所以只能直接選擇),輸入文章標(biāo)題、文章概要、文章內(nèi)容,天后點擊保存即可,也可以點擊保存并增加另一個或者保存并繼續(xù)編輯。保存后,會自動跳轉(zhuǎn)到文章管理頁面,顯示目前數(shù)據(jù)庫中所有的文章,以列表顯示。隨便點擊一篇,就可以進入到對應(yīng)文章的編輯界面了,可以對內(nèi)容進行修改或者刪除等。

          歡迎大家點贊、在看、轉(zhuǎn)發(fā)支持,點擊在看,下次可以第一時間收到公眾號推文~

          本文為付費專欄,每周更新1-2篇,利用Django帶大家一起實現(xiàn)個人博客,最后也會上線。

          如果是對Django感興趣的初學(xué)者可以購買,如果你對Django已經(jīng)有所了解了,那我不建議你付費,你可以選擇后面你感興趣的、更深層次的章節(jié)進行付費,如果需要的話。

          閱讀到這里的都是真想學(xué)習(xí)Django的學(xué)習(xí)者,我為大家準(zhǔn)備了一個Django學(xué)習(xí)交流群(付費,目前直接購買本系列任意一篇文章即可加入),加入方式如下:

          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  牛牛影视一区二区 | 国产18p | 日逼视频网站免费观看 | 亚洲日韩一区二区三区四区丨高清 | 男女操逼免费网站 |