小手一抬违霞,就能用 Python Django 實現(xiàn)一個微型博客系統(tǒng)

二嘴办、Python Django 微型博客

通過簡單的操作,就可以在 Django 中實現(xiàn)一個博客 應用

2.1 用模板生成文件

進入到 上篇博客創(chuàng)建的目錄中买鸽,執(zhí)行下述命令涧郊。

django-admin startapp blog
# 也可以使用下述命令
python manage.py startapp blog

命令運行之后,生成的目錄如下眼五。

相關文件說明如下:

blog # 根目錄
    __init__.py
    admin.py # 后臺管理
    apps.py # 應用設置相關
    models.py # 模型妆艘,數(shù)據(jù)庫相關
    tests.py # 測試相關
    views.py # 視圖相關
    migrations # 數(shù)據(jù)庫變更記錄文件夾

接下來修改 my_website 文件夾中的 settings.py 文件彤灶,添加 blog 應用,具體代碼如下批旺,重點是最后一行幌陕。

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

    'blog', # 這里是非常重要的
]

在 Django 中,如果希望應用模型汽煮、靜態(tài)文件搏熄、模板這些內(nèi)容,需要在 INSTALLED_APPS 添加對應的應用目錄逗物,如果沒有設置搬卒,應用不會進行加載。

2.2 創(chuàng)建文章模型與數(shù)據(jù)庫結(jié)構(gòu)

一篇博客包括標題翎卓,內(nèi)容契邀,發(fā)布時間等內(nèi)容,這些都在 Django 中進行創(chuàng)建失暴,核心要修改的是 models.py 文件坯门。

from django.db import models

# Create your models here.
class Blog(models.Model):
    title = models.CharField("標題", max_length=100)
    content = models.TextField("內(nèi)容")
    creatr_time = models.DateField("發(fā)布時間")

該類就是模型類,實現(xiàn)一個模型類逗扒,需要繼承自 models.Model 類古戴,該類用于進行數(shù)據(jù)庫中數(shù)據(jù)和 Python 對象之間的轉(zhuǎn)換操作。

下面將 Blog 類反射到 sqlite3 數(shù)據(jù)庫中矩肩,本階段請以模仿為主现恼,后續(xù)會為你補充完整相應的知識框架。

manage.py 所在的文件夾中運行下述命令:

python manage.py makemigrations blog

該命令用于檢查 blog 中模型文件的變更黍檩,由于在上文我們創(chuàng)建了一個 Blog 類叉袍,所以 models.py 文件被修改,當執(zhí)行上述命令時刽酱,會輸出如下內(nèi)容喳逛。

>python manage.py makemigrations blog
Migrations for 'blog':
  blog\migrations\0001_initial.py
    - Create model Blog

提示的信息也為 Create model Blog,提示創(chuàng)建了一個 Blog 類棵里,下面將 models.py 中的內(nèi)容在 sqlite3 創(chuàng)建出來润文,使用的命令為 python manage.py migrate blog,運行結(jié)果如下:

> python manage.py migrate blog
Operations to perform:
  Apply all migrations: blog
Running migrations:
  Applying blog.0001_initial... OK

2.3 創(chuàng)建管理后臺

下面通過簡單的步驟實現(xiàn)對 blog 表的管理殿怜,Django 自帶用戶認證系統(tǒng)典蝌,通過命令 python manage.py migrate 即可實現(xiàn)。

> python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

該命令創(chuàng)建一些列的數(shù)據(jù)庫表結(jié)構(gòu)头谜,表結(jié)構(gòu)出現(xiàn)之后赠法,還需要創(chuàng)建登錄賬號,用到的核心命令是 python manage.py createsuperuser

> python manage.py createsuperuser
Username (leave blank to use 'administrator'): xiangpica
Email address: dream@163.com
Password:
Password (again):
The password is too similar to the username.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

準備工作實現(xiàn)完畢砖织,對 admin.py 文件進行修改款侵,注意 admin.py 文件的位置以及模塊之間的調(diào)用關系。

from django.contrib import admin
from blog.models import Blog
# Register your models here.

@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
    pass

在正式運行之前侧纯,還需要修改一下網(wǎng)頁展示中英文內(nèi)容新锈,打開 setting.py 文件,修改如下內(nèi)容眶熬。

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

準備工作完成妹笆,控制臺運行下述命令 python manage.py runserver

> python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
March 24, 2021 - 22:22:33
Django version 3.1.7, using settings 'my_website.settings'
Starting development server at http://127.0.0.1:8000/

此時打開默認頁面,展示的內(nèi)容如下:

修改訪問地址為:http://127.0.0.1:8000/admin娜氏,出現(xiàn)登錄窗口拳缠,使用上文注冊的賬號即可訪問

輸入一些文章相關信息進行保存之后贸弥,返回列表頁面窟坐,出現(xiàn)一個小細節(jié),橙色框內(nèi)的數(shù)據(jù)是一個 Blog object绵疲,不是文章的標題哲鸳,繼續(xù)修改代碼。

修改 modes.py 文件盔憨,修改內(nèi)容如下:

from django.db import models

# Create your models here.
class Blog(models.Model):
    title = models.CharField("標題", max_length=100)
    content = models.TextField("內(nèi)容")
    creatr_time = models.DateField("發(fā)布時間")

    def __str__(self):
        return self.title

一個小型的博客完成徙菠,你可以對文章進行編輯與刪除操作。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郁岩,一起剝皮案震驚了整個濱河市婿奔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌问慎,老刑警劉巖萍摊,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝴乔,居然都是意外死亡,警方通過查閱死者的電腦和手機驮樊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門薇正,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人囚衔,你說我怎么就攤上這事挖腰。” “怎么了练湿?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵猴仑,是天一觀的道長。 經(jīng)常有香客問我,道長辽俗,這世上最難降的妖魔是什么疾渣? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮崖飘,結(jié)果婚禮上榴捡,老公的妹妹穿的比我還像新娘。我一直安慰自己朱浴,他們只是感情好吊圾,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翰蠢,像睡著了一般项乒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梁沧,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天檀何,我揣著相機與錄音,去河邊找鬼趁尼。 笑死埃碱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的酥泞。 我是一名探鬼主播砚殿,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芝囤!你這毒婦竟也來了似炎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤悯姊,失蹤者是張志新(化名)和其女友劉穎羡藐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悯许,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡仆嗦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了先壕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘩扼。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖垃僚,靈堂內(nèi)的尸體忽然破棺而出集绰,到底是詐尸還是另有隱情,我是刑警寧澤谆棺,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布栽燕,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碍岔。R本人自食惡果不足惜浴讯,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望付秕。 院中可真熱鬧兰珍,春花似錦、人聲如沸询吴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猛计。三九已至唠摹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奉瘤,已是汗流浹背勾拉。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盗温,地道東北人藕赞。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像卖局,于是被迫代替她去往敵國和親斧蜕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

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