------------恢復內容開始------------
前言
在登錄的時候,輸入框里輸入賬號,密碼提交,從前端頁面將賬號密碼等信息提交到服務端,服務端接收數據后根據提交的數據進行相應的處理,返回相應的響應。這一套流程下來就是今天學習的內容,表單的提交,涉及到前后端數據的交互。
from表單
用戶表單是web開發的一項基本的功能,Django的表單功能由Form類實現,主要分為兩種:
django.forms.Form 基礎的表單功能
django.forms.ModelForm 結合模型生成的數據表單
一個完整的表單有四部分組成:日膠地址,請求方式,元素空間,提交按鈕。
action
提交地址,設置用戶提交數據有哪個url接收和處理。如果顯示當前頁,不需要跳轉,action設置為空字符,如果顯示不是當前頁,不需要跳轉,action設置為跳轉后的地址。
method
請求方式,常見的get或post請求
input
元素空間,輸入文本信息
submit
提交按鈕,出發提交動作
創建html文件,page_01.html
數據庫表
通過html 實現qq號碼查詢的提交,models.py文件創建PersonInfo.py文件
將數據遷移,同步數據庫:
python manage.py makemigrations
python manage.py migrate
打開navicat客戶端,查看是否成功創建表格,准備查詢數據
獲取提交參數(request.GET)
html上的數據提交后,我們希望能獲取到提交的數據,然后對數據做個簡單的處理,跟進不同的數據返回不同的結果。通過表單提交數據后,通過視圖函數實現和數據庫的交互。
equest.GET 可以看成一個字典,用GET方法傳遞的值都會保存到其中,可以用 request.GET['key_name']來取值,但是當key值不存在時,會報錯“MultiValueDictKeyError”。
為了避免key值不存在時報錯,這里可以用另外一種寫法:request.GET.get('key_name', None)
獲取提交的數據 # r = request.GET["q"] # key_name就是前面輸入框里的name屬性對應值name="q" r = request.GET.get('q', None) #key_name不存在時,不會報錯
查詢數據庫返回
查詢數據庫PersonInfo輸入qq號碼,返回name值
視圖函數數據交互處理
最后添加訪問路徑:
啟動django服務后,打開瀏覽器輸入訪問路徑,進行數據的提交如下
訪問日志:
------------恢復內容結束------------