新手練習-完整的投票項目

第一部分:創建項目和app

創建新項目

打開pycharm專業版,新建一個Django項目,取名爲MySite,其餘保持默認配置即可。

創建投票app

在這裏插入圖片描述
輸入命令:startapp polls,並執行。
此時app創建成功!
在這裏插入圖片描述

創建第一個視圖view

在這裏插入圖片描述

配置路由URLconf

配置polls的路由

在這裏插入圖片描述

配置根路由

在這裏插入圖片描述

啓動服務器,查看效果

在這裏插入圖片描述

第二部分:數據庫 & DjangoAdmin

配置MySQL

在這裏插入圖片描述
在MySQL中創建一個新的數據庫:polls
在這裏插入圖片描述

在數據庫中生成對應的表

執行“migrate”,此時會根據settings.py中的INSTALLED_APPS自動建表。
在這裏插入圖片描述
在這裏插入圖片描述

創建模型Model

在這裏插入圖片描述

註冊app

在這裏插入圖片描述

生成migration

在這裏插入圖片描述

查看migration對應的SQL語句

在這裏插入圖片描述

將migration同步到數據庫中

在這裏插入圖片描述
去數據庫中查看新生成的表:
在這裏插入圖片描述

database API

增加記錄

打開Python Console,依次執行:
在這裏插入圖片描述
查看錶polls_question,發現增加了一條記錄:
在這裏插入圖片描述
時間顯示的不對,應該是時區的問題。

簡單的查詢

在這裏插入圖片描述

重寫__str__()方法

在這裏插入圖片描述

增加Choice並查看

在這裏插入圖片描述

Django Admin

創建超級管理員

在這裏插入圖片描述

將Model添加到管理員頁面

在這裏插入圖片描述

查看管理員頁面

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

解決時間顯示錯亂的方法——修改時區

在這裏插入圖片描述

第三部分:增加更多的視圖views

創建templates文件夾

創建templates文件夾,用來存放模板:
(注意文件夾的結構一定要如下圖所示,這樣符合Django的Namespace規則)
在這裏插入圖片描述

創建index視圖

在這裏插入圖片描述
在這裏插入圖片描述

查詢數據庫 & 拋出404錯誤

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在瀏覽器中查看:
在這裏插入圖片描述
在這裏插入圖片描述

在模板中訪問對象的屬性

通過點語法來訪問對象的屬性,訪問的次序爲:字典查詢、屬性查詢、下標查詢。
在這裏插入圖片描述
在這裏插入圖片描述

去除URL硬編碼

在這裏插入圖片描述
路由定義如下:
在這裏插入圖片描述

URL命名空間

見上文中的app_name = xxx

第四部分:表單

創建一個簡易表單

在這裏插入圖片描述
RadioButton的基本語法說明:
每一個RadioButton的name爲choice,value爲對應choice的id,因此,當提交POST請求時,會發送給服務器choice=#的數據,#就是value對應的值。

forloop.counter:
for循環執行的次數,從1開始

csrf_token:
防止跨站請求僞造。

創建vote和results視圖

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

第五部分:測試

略。

第六部分:靜態文件

創建static文件夾

創建static文件夾,然後創建style.css:
在這裏插入圖片描述

修改模板頁面

在這裏插入圖片描述

啓動服務器,查看效果

在這裏插入圖片描述

增加背景圖片

將背景圖片添加到該目錄下:
在這裏插入圖片描述
修改CSS樣式表文件:
在這裏插入圖片描述
此時,項目主頁便顯示出了該背景圖。
Tips:顯然{% static %}不能使用在靜態文件中,因此在靜態文件中應該使用相對路徑

第七部分:自定義管理員界面

改變字段次序

修改admin.py:
在這裏插入圖片描述
在這裏插入圖片描述

增加關聯的對象

現在我們有了Question的管理員頁面,但是我們缺少Choice的顯示。

第一種方法

在admin.py中註冊Choice:
在這裏插入圖片描述
效果如下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這個表格中,Question域是一個下拉框,包含了數據庫中的每個question。Django把ForeignKey表示爲下拉框的形式。

第二種方法

修改admin.py:
在這裏插入圖片描述
這表示Choice對象在Question的頁面中被編輯。效果如下:
在這裏插入圖片描述
(其餘更細節的定製省略,詳情可以查閱官方文檔)
Over。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章