用Django搭建個人博客—(2)


今日任務:

1 blog的數據庫模型定義

2 簡單的注冊登錄功能的實現

 

項目的源文件已經推送到git@oschina.net.

所以,如果想要參閱源碼的請移步 (Fork) http://git.oschina.net/gitlab/Missuor/

Tag: v1.0.0.02 http://git.oschina.net/gitlab/Missuor/tree/v1.0.0.02 

首先把昨天的歷史遺留問題解決掉.

 

Hello World

SHA-1: http://git.oschina.net/gitlab/Missuor/commit/64f14dba765ae93d1adf77559416bc438919bcf8

在core文件夾下面新建文件views.py

(新多出來的static文件夾和templates文件夾會在后面說明)

圖 1 沒啥好說的

 

圖 2 hello_world函數定義

擴展閱讀: Writing views
https://docs.djangoproject.com/en/1.7/topics/http/views/#writing-views

圖 3 Hello World的url配置

擴展閱讀:

URL dispatcher
https://docs.djangoproject.com/en/1.7/topics/http/urls/#url-dispatcher

python manage.py runserver 然后訪問 http://127.0.0.1:8000/hello-world/

圖 4 Hello World頁面

擴展閱讀:

https://docs.djangoproject.com/en/1.7/intro/tutorial03/#write-your-first-view

定義Blog數據庫模型

源碼閱讀: http://git.oschina.net/gitlab/Missuor/blob/f32277c3b25c565d9c97c7e582b38b4537c51cc0/blog/models.py

關於Django數據庫模型的定義,這里提供幾個參考文檔的鏈接地址 Model field reference [1] 和 Model Meta options [2]

圖 5 blog的數據庫模型

擴展閱讀: 

Model field reference
https://docs.djangoproject.com/en/1.7/ref/models/fields/

Model Meta options
https://docs.djangoproject.com/en/1.7/ref/models/options/#model-meta-options

 

這里補充說明一點昨天漏掉的東西,python manage.py startapp blog過后,激活該app的話必須在settings.py 的INSTALLED_APPS中添加該app的名字,這樣blog才能使用.

圖 6 settings.py 的INSTALLED_APPS項中激活blog

在項目根路徑下載命令行窗口中鍵入 python manage.py validate 用來檢測數據庫定義是否通過驗證.如圖 6-2 所示則為正常

圖 6 – 2 檢測模型的定義是否正確

定義Blog的views中的幾個基本的函數--注冊 登錄 注銷

圖 7 blog的views.py函數預定義

圖 8 blog的urls.py定義

將blog的URL_conf應用到項目

源碼閱讀: http://git.oschina.net/gitlab/Missuor/commit/5fafa9be7ea750ee9301900a9d7d1c12020500a8

圖 9 在核心urls.py中引入blog是url配置文件

文件路徑: http://git.oschina.net/gitlab/Missuor/tree/master/templates/core

圖 10 從django自己的admin模板文件中拷貝幾個基礎模板文件作為自定義模板

圖 11 Django默認的模板路徑

源碼閱讀: http://git.oschina.net/gitlab/Missuor/blob/master/templates/core/base.html

圖12 定義站點的基本模板文件base.html

擴展閱讀:

HTML
http://www.w3school.com.cn/html/index.asp

CSS
http://www.w3school.com.cn/css/index.asp

JavaScript
http://www.w3school.com.cn/js/index.asp

圖 13 模板文件繼承與重載

擴展閱讀:

The Django template language
https://docs.djangoproject.com/en/1.7/topics/templates/#the-django-template-language

圖 14 給自己的blog添加幾個模板文件

圖 15 沒啥好說的 裝一個需要用到的庫pillow

圖 16 利用pip安裝pillow庫

圖 17 User的models定義中,有一個ImageField字段是用來盛放用戶頭像信息的,這就是為什么需要安裝pillow庫的原因

注冊登錄注銷后台代碼實現

源碼閱讀: http://git.oschina.net/gitlab/Missuor/blob/ae4419578c328c1c413a0ffb1698b782046a99f3/blog/views.py

圖 18-0 blog.views.header

注冊

圖 18 blog.views.register 注冊的后台代碼

擴展閱讀:

View decorators
https://docs.djangoproject.com/en/1.7/topics/http/decorators/#module-django.views.decorators.http

PEP 3129 - Class Decorators
https://www.python.org/dev/peps/pep-3129/

PEP 318 - Decorators for Functions and Methods
https://www.python.org/dev/peps/pep-0318/

登錄

圖 19 blog.views.login 登錄的后台代碼

注銷

圖 20 blog.views.logout 注銷的后台代碼

子頁面首頁

圖21 blog.views.index 博客的頁面首頁后台代碼

定義用於驗證用戶的表單

源碼閱讀: http://git.oschina.net/gitlab/Missuor/blob/3b7c79a11b5384ef674cece3863af375c4e16fb9/blog/forms.py

圖 22 blog.forms 博客用戶驗證的form表單的后台代碼

擴展閱讀:

Working with forms
https://docs.djangoproject.com/en/1.7/topics/forms/#working-with-forms

成果展示 1 HomePage

  

成果展示 2 Login

 

成果展示 -3 Register

 

我會抽空把代碼往這里堆一堆的,方便小伙伴們直接查閱批注^7^.

edit. @MrWho
2015-01-22 1:02


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM