Django 中的視圖的概念是「一類具備相同功能和模板的網頁的集合」。好比,在一個博客應用中,你可能會建立以下幾個視圖:python
這些需求都靠視圖(View)來完成。git
首先寫一個最簡單的視圖函數,在瀏覽器中打印出Hello World!
字符串。github
打開article/views.py
,寫出視圖函數:sql
article/views.py # 導入 HttpResponse 模塊 from django.http import HttpResponse # 視圖函數 def article_list(request): return HttpResponse("Hello World!")
在 Django 中,網頁都是從視圖派生而來。每個視圖表現爲一個簡單的 Python 函數,它必需要作的只有兩件事:返回一個包含被請求頁面內容的 HttpResponse
對象,或者拋出一個異常,好比 Http404
。至於你還想幹些什麼,隨便你。數據庫
視圖函數中的request
與網頁發來的請求有關,裏面包含get或post的內容、用戶瀏覽器、系統等信息。Django調用article_list
函數時會返回一個含字符串的 HttpResponse
對象。django
有了視圖函數,還須要配置URLconfs,將用戶請求的URL連接關聯起來。換句話說,URLconfs的做用是將URL映射到視圖中。瀏覽器
在前面的文章中已經將項目/article
的URL分發給了article
應用,所以這裏只須要修改以前添加的article/urls.py
就能夠。添加如下代碼:服務器
article/urls.py # 引入views.py from . import views ... urlpatterns = [ # path函數將url映射到視圖 path('article-list/', views.article_list, name='article_list'), ]
Django 將會根據用戶請求的 URL 來選擇使用哪一個視圖。本例中當用戶請求article/article-list
連接時,會調用views.py
中的article_list
函數,並返回渲染後的對象。參數name
用於反查url地址,至關於給url起了個名字,之後會用到。ide
測試一下剛纔敲的代碼是否工做正常。函數
在虛擬環境中,進入項目目錄,也就是my_blog
文件夾,輸入python manage.py runserver
,運行調試服務器:
(env) E:\django_project\my_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.
成功運行後,打開瀏覽器,輸入url地址http://127.0.0.1:8000/article/article-list/
,其中127.0.0.1:8000
是調試服務器的本地地址,article
是項目路由my_blog\urls.py
分發的地址,article-list
是剛纔配置的article\urls.py
應用分發的地址。
運氣好的話,瀏覽器中會打印出Hello World!
字符串:
不到10行代碼就完成了基本功能,是否是很神奇。
固然,只是小試牛刀。
在前面章節編寫Model模型中雖然定義了數據庫表,可是這個表是空的,不方便展現View調取數據的效果。因此在寫View以前,須要往數據表裏記錄一些數據。接下來就作這個工做。
網站後臺,有時也稱爲網站管理後臺,是指用於管理網站的一系列操做,如:數據的增長、更新、刪除等。在項目開發的初期,由於沒有真實的用戶數據和完整的測試環境,會頻繁地使用後臺修改測試數據。
幸運的是Django內置了一個很好的後臺管理工具,只須要些少許代碼,就能夠實現強大的功能。
管理員帳號(Superuser)是能夠進入網站後臺,對數據進行維護的帳號,具備很高的權限。這裏咱們須要建立一個管理員帳號,以便添加後續的測試數據。
虛擬環境中輸入python manage.py createsuperuser
指令,建立管理員帳號:
(env) E:\django_project\my_blog>python manage.py createsuperuser Username: dusai Email address: dusaiphoto@foxmail.com Password: Password (again): Superuser created successfully.
指令會提示你輸入帳號名字、郵箱和密碼,根據喜愛填入便可建立成功。
接下來咱們須要「告訴」Django,後臺中須要添加ArticlePost
這個數據表供管理。
打開article/admin.py
,寫入如下代碼:
article/admin.py from django.contrib import admin # 別忘了導入ArticlerPost from .models import ArticlePost # 註冊ArticlePost到admin中 admin.site.register(ArticlePost)
這樣就簡單的註冊好了。
細心的同窗可能已經發現,Django項目生成的時候就自動配置好了後臺的settings和url,所以不須要咱們再操心了。
啓動server,在瀏覽器中輸入http://127.0.0.1:8000/admin/
,一切正常的話就看到下面的登陸界面了:
輸入剛纔建立的管理員帳號,登陸進去:
紅框內就是剛纔添加的ArticlePost
數據表,點擊進入後,再點擊右上角的ADD ARTICLE POST
按鈕,到達以下頁面:
仔細看一下表單中的每一項,發現與ArticlePost
中的字段徹底符合;由於updated
字段指定了自動添加,這裏就沒顯示了。
將表單填好後,點擊保存:
能夠看到ARTICLE POST中多了剛纔錄入的一條數據。按照一樣的方法,再寫入幾條數據:
至此準備工做就已經大功告成。
2018-10-29 新增內容
經過上面的操做,咱們的數據庫中已經有1條用戶數據、3條文章數據了。有的時候我須要檢查數據庫中的數據是否正確,可是項目中的數據庫文件db.sqlite3
又沒法直接打開,怎麼辦呢?
這時候就須要用到專門處理SQLite數據文件的軟件了:SQLiteStudio
下載並安裝,用它打開db.sqlite3
,軟件導航欄中就出現了數據庫中保存的各種數據列表。好比說auth_user就是用戶數據表了:
你能夠用它檢查項目代碼中數據庫的操做是否正常,這在開發階段是很是實用的。
本章初步感覺了View的工做模式,建立了Superuser在後臺錄入了幾條測試數據。
下一章將編寫更有意義的View,準備好後老司機就開車了。
轉載請告知做者並註明出處。