Pycharm上Django的使用 Day7

1.讓用戶可以輸入數據數據庫

當前,只有超級用戶可以經過管理網站輸入數據,咱們不想讓用戶與管理網站交互,所以咱們將使用Django的表單建立工具來建立讓用戶可以輸入數據的頁面瀏覽器

1>建立用於添加主題的表單服務器

在Django中,建立表單的最簡單方式是使用ModelForm,它根據咱們在models.py中的信息自動建立表單。建立一個名爲forms.py的文件,並存儲到models.py所在的目錄中函數

1處導入模塊forms以及要使用的模型Topic。工具

2處根據模型Topic建立一個表單,該表單只包含字段text測試

4處讓Django不要爲字段text生成標籤網站

2>定義new_topic的URL模式3d

將請求交給視圖函數new_topic()orm

3>編寫視圖函數new_topic()csrf

導入HttpResponseRedirect類,用戶提交主題後將使用這個類將用戶重定向到網頁topics,函數reverse()根據指定的URL模型肯定URL

1處的測試肯定請求方法是GET仍是POST。若是請求方法不是POST,那就多是GET,所以咱們要返回一個空表單

2處建立一個TopicForm實例,將其存儲在變量form中,再經過上下文字典將這個表單發送給模板(7處)

若是請求方法是POST,將執行else代碼塊,3處使用用戶輸入的數據建立一個TopicForm實例form

4處檢查提交的數據是否有效;5處表示調用save()將表單中的數據寫入數據庫

6處使用reverse()獲取頁面topics的URL,並將其傳遞給HttpResponseRedirect()

4>建立模板new_topic

1處定義了一個HTML表單,實參action告訴服務器將提交的表單數據發送到視圖函數new_topic(),實參method讓瀏覽器以POST方式提交數據

2處使用模板標籤{% csrf_token %}來防止攻擊者利用表單來獲取對服務器未經受權的訪問

3處用於顯示錶單

4處定義一個提交按鈕

5>在頁面topics中添加一個到頁面new_topic的連接

6>運行manage.py

相關文章
相關標籤/搜索