成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Django搭建個(gè)人博客:View視圖初探

Turbo / 2518人閱讀

摘要:比如,在一個(gè)博客應(yīng)用中,你可能會(huì)創(chuàng)建如下幾個(gè)視圖博客首頁展示最近的幾項(xiàng)內(nèi)容。這些需求都靠視圖來完成。首先寫一個(gè)最簡單的視圖函數(shù),在瀏覽器中打印出字符串。調(diào)用函數(shù)時(shí)會(huì)返回一個(gè)含字符串的對象。換句話說,的作用是將映射到視圖中。

Django 中的視圖的概念是「一類具有相同功能和模板的網(wǎng)頁的集合」。比如,在一個(gè)博客應(yīng)用中,你可能會(huì)創(chuàng)建如下幾個(gè)視圖:

博客首頁:展示最近的幾項(xiàng)內(nèi)容。

內(nèi)容“詳情”頁:詳細(xì)展示某項(xiàng)內(nèi)容。

評論處理器:用于響應(yīng)為一項(xiàng)內(nèi)容添加評論的操作。

這些需求都靠視圖(View)來完成。

Hello World!

首先寫一個(gè)最簡單的視圖函數(shù),在瀏覽器中打印出Hello World!字符串。

打開article/views.py,寫出視圖函數(shù):

article/views.py

# 導(dǎo)入 HttpResponse 模塊
from django.http import HttpResponse

# 視圖函數(shù)
def article_list(request):
    return HttpResponse("Hello World!")

在 Django 中,網(wǎng)頁都是從視圖派生而來。每一個(gè)視圖表現(xiàn)為一個(gè)簡單的 Python 函數(shù),它必須要做的只有兩件事:返回一個(gè)包含被請求頁面內(nèi)容的 HttpResponse對象,或者拋出一個(gè)異常,比如 Http404 。至于你還想干些什么,隨便你。

視圖函數(shù)中的request與網(wǎng)頁發(fā)來的請求有關(guān),里面包含get或post的內(nèi)容、用戶瀏覽器、系統(tǒng)等信息。Django調(diào)用article_list函數(shù)時(shí)會(huì)返回一個(gè)含字符串的 HttpResponse對象。

有了視圖函數(shù),還需要配置URLconfs,將用戶請求的URL鏈接關(guān)聯(lián)起來。換句話說,URLconfs的作用是將URL映射到視圖中。

在前面的文章中已經(jīng)將項(xiàng)目/article的URL分發(fā)給了article應(yīng)用,因此這里只需要修改之前添加的article/urls.py就可以。添加以下代碼:

article/urls.py

# 引入views.py
from . import views

...

urlpatterns = [
    # path函數(shù)將url映射到視圖
    path("article-list/", views.article_list, name="article_list"),
]

Django 將會(huì)根據(jù)用戶請求的 URL 來選擇使用哪個(gè)視圖。本例中當(dāng)用戶請求article/article-list鏈接時(shí),會(huì)調(diào)用views.py中的article_list函數(shù),并返回渲染后的對象。參數(shù)name用于反查url地址,相當(dāng)于給url起了個(gè)名字,以后會(huì)用到。

測試一下剛才敲的代碼是否工作正常。

在虛擬環(huán)境中,進(jìn)入項(xiàng)目目錄,也就是my_blog文件夾,輸入python manage.py runserver,運(yùn)行調(diào)試服務(wù)器:

(env) E:django_projectmy_blog>python manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).
August 30, 2018 - 19:41:00
Django version 2.1, using settings "my_blog.settings"
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

成功運(yùn)行后,打開瀏覽器,輸入url地址http://127.0.0.1:8000/article/article-list/,其中127.0.0.1:8000是調(diào)試服務(wù)器的本地地址,article是項(xiàng)目路由my_blogurls.py分發(fā)的地址,article-list是剛才配置的articleurls.py應(yīng)用分發(fā)的地址。

運(yùn)氣好的話,瀏覽器中會(huì)打印出Hello World!字符串:

不到10行代碼就完成了基本功能,是不是很神奇。

當(dāng)然,只是小試牛刀。

準(zhǔn)備工作

在前面章節(jié)編寫Model模型中雖然定義了數(shù)據(jù)庫表,但是這個(gè)表是空的,不方便展示View調(diào)取數(shù)據(jù)的效果。所以在寫View之前,需要往數(shù)據(jù)表里記錄一些數(shù)據(jù)。接下來就做這個(gè)工作。

網(wǎng)站后臺概念

網(wǎng)站后臺,有時(shí)也稱為網(wǎng)站管理后臺,是指用于管理網(wǎng)站的一系列操作,如:數(shù)據(jù)的增加、更新、刪除等。在項(xiàng)目開發(fā)的初期,因?yàn)闆]有真實(shí)的用戶數(shù)據(jù)和完整的測試環(huán)境,會(huì)頻繁地使用后臺修改測試數(shù)據(jù)。

幸運(yùn)的是Django內(nèi)置了一個(gè)很好的后臺管理工具,只需要些少量代碼,就可以實(shí)現(xiàn)強(qiáng)大的功能。

創(chuàng)建管理員賬號(Superuser)

管理員賬號(Superuser)是可以進(jìn)入網(wǎng)站后臺,對數(shù)據(jù)進(jìn)行維護(hù)的賬號,具有很高的權(quán)限。這里我們需要?jiǎng)?chuàng)建一個(gè)管理員賬號,以便添加后續(xù)的測試數(shù)據(jù)。

虛擬環(huán)境中輸入python manage.py createsuperuser指令,創(chuàng)建管理員賬號:

(env) E:django_projectmy_blog>python manage.py createsuperuser
Username: dusai
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.

指令會(huì)提示你輸入賬號名字、郵箱和密碼,根據(jù)喜好填入即可創(chuàng)建成功。

將ArticlePost注冊到后臺中

接下來我們需要“告訴”Django,后臺中需要添加ArticlePost這個(gè)數(shù)據(jù)表供管理。

打開article/admin.py,寫入以下代碼:

article/admin.py

from django.contrib import admin

# 別忘了導(dǎo)入ArticlerPost
from .models import ArticlePost

# 注冊ArticlePost到admin中
admin.site.register(ArticlePost)

這樣就簡單的注冊好了。

在后臺中遨游

細(xì)心的同學(xué)可能已經(jīng)發(fā)現(xiàn),Django項(xiàng)目生成的時(shí)候就自動(dòng)配置好了后臺的settings和url,因此不需要我們再操心了。

啟動(dòng)server,在瀏覽器中輸入http://127.0.0.1:8000/admin/,一切正常的話就看到下面的登錄界面了:

輸入剛才創(chuàng)建的管理員賬號,登錄進(jìn)去:

紅框內(nèi)就是剛才添加的ArticlePost數(shù)據(jù)表,點(diǎn)擊進(jìn)入后,再點(diǎn)擊右上角的ADD ARTICLE POST按鈕,到達(dá)如下頁面:

仔細(xì)看一下表單中的每一項(xiàng),發(fā)現(xiàn)與ArticlePost中的字段完全符合;因?yàn)?b>updated字段指定了自動(dòng)添加,這里就沒顯示了。

將表單填好后,點(diǎn)擊保存:

可以看到ARTICLE POST中多了剛才錄入的一條數(shù)據(jù)。按照同樣的方法,再寫入幾條數(shù)據(jù):

至此準(zhǔn)備工作就已經(jīng)大功告成。

檢視數(shù)據(jù)庫
2018-10-29 新增內(nèi)容

通過上面的操作,我們的數(shù)據(jù)庫中已經(jīng)有1條用戶數(shù)據(jù)、3條文章數(shù)據(jù)了。有的時(shí)候我需要檢查數(shù)據(jù)庫中的數(shù)據(jù)是否正確,但是項(xiàng)目中的數(shù)據(jù)庫文件db.sqlite3又無法直接打開,怎么辦呢?

這時(shí)候就需要用到專門處理SQLite數(shù)據(jù)文件的軟件了:SQLiteStudio

下載并安裝,用它打開db.sqlite3,軟件導(dǎo)航欄中就出現(xiàn)了數(shù)據(jù)庫中保存的各類數(shù)據(jù)列表。比如說auth_user就是用戶數(shù)據(jù)表了:

你可以用它檢查項(xiàng)目代碼中數(shù)據(jù)庫的操作是否正常,這在開發(fā)階段是非常實(shí)用的。

總結(jié)

本章初步感受了View的工作模式,創(chuàng)建了Superuser在后臺錄入了幾條測試數(shù)據(jù)。

下一章將編寫更有意義的View,準(zhǔn)備好后老司機(jī)就開車了。

有疑問請?jiān)诙刨惖膫€(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。

或Email私信我:[email protected]

項(xiàng)目完整代碼:Django_blog_tutorial

轉(zhuǎn)載請告知作者并注明出處。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42461.html

相關(guān)文章

  • Django搭建個(gè)人博客:改寫View視圖

    摘要:改寫視圖函數(shù)上一章我們感受了視圖的工作流程。循壞表示依次取出中的元素,命名為,并分別執(zhí)行接下來操作。即為語言,中間包裹了一個(gè)段落的文字。有疑問請?jiān)诙刨惖膫€(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。 改寫視圖函數(shù) 上一章我們感受了視圖的工作流程。 為了讓視圖真正發(fā)揮作用,改寫article/views.py中的article_list視圖函數(shù): article/views.py from django...

    KaltZK 評論0 收藏0
  • Django搭建個(gè)人博客:基于類的視圖

    摘要:有編程基礎(chǔ)的同學(xué)都知道,類是面向?qū)ο蠹夹g(shù)中非常重要的概念。有區(qū)別的是,是作為功能添加到子類中的,而不是作為父類。首先調(diào)用父類方法,將這個(gè)對象賦值給變量,然后再對其進(jìn)行統(tǒng)計(jì)瀏覽量的操作,最后將對象返回。 說是完結(jié),馬上又開始寫進(jìn)階篇了。 本章不會(huì)為博客項(xiàng)目增加新功能,但是也同樣重要,因?yàn)槲覀円獙W(xué)習(xí)高逼格的基于類的視圖。 什么是類視圖 前面章節(jié)中寫的所有視圖都是基于函數(shù)的,即def;而類視...

    QiShare 評論0 收藏0
  • Django搭建個(gè)人博客:用django-notifications實(shí)現(xiàn)消息通知

    摘要:接下來你就可以在項(xiàng)目的任何地方發(fā)送通知了像這樣其中的參數(shù)釋義發(fā)送通知的對象接收通知的對象動(dòng)詞短語鏈接到動(dòng)作的對象可選執(zhí)行通知的對象可選有點(diǎn)繞,舉個(gè)栗子杜賽在搭建個(gè)人博客中對你發(fā)表了評論。有疑問請?jiān)诙刨惖膫€(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。 憑借你勤奮的寫作,拜讀你文章的用戶越來越多,他們的評論也分散在眾多的文章之中。作為博主,讀者的留言肯定是要都看的;而讀者給你留言,自然也希望得到回復(fù)。 怎么...

    Zoom 評論0 收藏0
  • Django搭建個(gè)人博客:編寫博客文章的Model模型

    摘要:在里寫一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)的應(yīng)用的第一步是定義模型,也就是數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)和附加的其它元數(shù)據(jù)。模型元數(shù)據(jù)是任何不是字段的東西,例如排序選項(xiàng)數(shù)據(jù)庫表名單數(shù)和復(fù)數(shù)名稱和。 Django 框架主要關(guān)注的是模型(Model)、模板(Template)和視圖(Views),稱為MTV模式。 它們各自的職責(zé)如下: 層次 職責(zé) 模型(Model),即數(shù)據(jù)存取層 處理與數(shù)據(jù)相關(guān)的所有事務(wù): 如何存取...

    winterdawn 評論0 收藏0
  • 個(gè)人博客三|首頁后臺開發(fā)

    摘要:聲明本渣渣部分代碼參考自其實(shí)有很多代碼是不需要自己一行行碼出來,生產(chǎn)力是第一位。只有研究型人才需要生產(chǎn)代碼,作為一名渣渣拿來用是最高效的做法。程序員都有一個(gè)開源的精神,碼出來的代碼本身是希望更多的人用到,應(yīng)用到生產(chǎn)中。 聲明:本渣渣部分代碼參考自TendCode其實(shí)有很多代碼是不需要自己一行行碼出來,生產(chǎn)力是第一位。只有研究型人才需要生產(chǎn)代碼,作為一名渣渣拿來用是最高效的做法。程序員都...

    zorpan 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<