亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

改進Django中的表單的簡單方法

2020-01-04 18:02:45
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了改進Django中的表單的簡單方法,Django是Python重多人氣框架中最著名的一個,需要的朋友可以參考下

首先,search()視圖對于空字符串的處理相當薄弱——僅顯示一條”Please submit a search term.”的提示信息。 若用戶要重新填寫表單必須自行點擊“后退”按鈕, 這種做法既糟糕又不專業。如果在現實的案例中,我們這樣子編寫,那么Django的優勢將蕩然無存。

在檢測到空字符串時更好的解決方法是重新顯示表單,并在表單上面給出錯誤提示以便用戶立刻重新填寫。 最簡單的實現方法既是添加else分句重新顯示表單,代碼如下:

 

 
  1. from django.http import HttpResponse 
  2. from django.shortcuts import render_to_response 
  3. from mysite.books.models import Book 
  4.  
  5. def search_form(request): 
  6. return render_to_response('search_form.html'
  7.  
  8. def search(request): 
  9. if 'q' in request.GET and request.GET['q']: 
  10. q = request.GET['q'
  11. books = Book.objects.filter(title__icontains=q) 
  12. return render_to_response('search_results.html'
  13. {'books': books, 'query': q}) 
  14. else
  15. **return render_to_response('search_form.html', {'error': True})** 

(注意,將search_form()視圖也包含進來以便查看)

這段代碼里,我們改進來search()視圖:在字符串為空時重新顯示search_form.html。 并且給這個模板傳遞了一個變量error,記錄著錯誤提示信息。 現在我們編輯一下search_form.html,檢測變量error:

 

 
  1. <html> 
  2. <head> 
  3. <title>Search</title> 
  4. </head> 
  5. <body> 
  6. **{% if error %}** 
  7. **<p style="color: red;">Please submit a search term.</p>** 
  8. **{% endif %}** 
  9. <form action="/search/" method="get"
  10. <input type="text" name="q"
  11. <input type="submit" value="Search"
  12. </form> 
  13. </body> 
  14. </html> 

我們修改了search_form()視圖所使用的模板,因為search_form()視圖沒有傳遞error變量,所以在條用search_form視圖時不會顯示錯誤信息。

通過上面的一些修改,現在程序變的好多了,但是現在出現一個問題: 是否有必要專門編寫search_form()來顯示表單? 按實際情況來說,當一個請求發送至/search/(未包含GET的數據)后將會顯示一個空的表單(帶有錯誤信息)。 所以,只要我們改變search()視圖:當用戶訪問/search/并未提交任何數據時就隱藏錯誤信息,這樣就移去search_form()視圖以及對應的URLpattern。

  1. def search(request): 
  2. error = False 
  3. if 'q' in request.GET: 
  4. q = request.GET['q'
  5. if not q: 
  6. error = True 
  7. else
  8. books = Book.objects.filter(title__icontains=q) 
  9. return render_to_response('search_results.html'
  10. {'books': books, 'query': q}) 
  11. return render_to_response('search_form.html'
  12. {'error': error}) 


在改進后的視圖中,若用戶訪問/search/并且沒有帶有GET數據,那么他將看到一個沒有錯誤信息的表單; 如果用戶提交了一個空表單,那么它將看到錯誤提示信息,還有表單; 最后,若用戶提交了一個非空的值,那么他將看到搜索結果。

最后,我們再稍微改進一下這個表單,去掉冗余的部分。 既然已經將兩個視圖與URLs合并起來,/search/視圖管理著表單的顯示以及結果的顯示,那么在search_form.html里表單的action值就沒有必要硬編碼的指定URL。 原先的代碼是這樣:

  1. <form action="/search/" method="get"


現在改成這樣:

  1. <form action="" method="get"


action=”“意味著表單將提交給與當前頁面相同的URL。 這樣修改之后,如果search()視圖不指向其它頁面的話,你將不必再修改action。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美www| 国产精品久久久久久久app| 日韩成人中文字幕| 55夜色66夜色国产精品视频| 中文字幕亚洲一区在线观看| 精品久久久91| 亚洲性线免费观看视频成熟| 精品亚洲一区二区三区在线播放| 亚洲欧美国产日韩天堂区| 青青草国产精品一区二区| 国产91ⅴ在线精品免费观看| 91视频8mav| 亚洲影视九九影院在线观看| 色香阁99久久精品久久久| 国产欧美精品久久久| 日韩影视在线观看| 亚洲国产精品久久久久秋霞不卡| 欧美综合国产精品久久丁香| 成人在线观看视频网站| 久久久久久久香蕉网| 日韩在线观看成人| 亚洲成人黄色在线观看| 国产精品中文字幕久久久| 欧美高清无遮挡| 亚洲va久久久噜噜噜| 亚洲最新av在线| 亚洲人成网站色ww在线| 欧美成人黄色小视频| 亚洲自拍偷拍区| 91精品国产自产91精品| 97在线看免费观看视频在线观看| 伊人久久男人天堂| 亚洲国产古装精品网站| 午夜精品99久久免费| 好吊成人免视频| 国产一区二区三区久久精品| 欧美电影免费观看高清| 亚洲久久久久久久久久| 久久国产精品视频| 亚洲人在线观看| 欧美日韩国产999| 日韩av毛片网| 国产精品高潮呻吟久久av野狼| 亚洲第一页中文字幕| 国产一区在线播放| 亚洲午夜国产成人av电影男同| 欧美在线视频一区| 精品久久久国产精品999| 91中文精品字幕在线视频| 久久乐国产精品| 1769国内精品视频在线播放| 久久综合国产精品台湾中文娱乐网| 九色成人免费视频| 久久人人爽亚洲精品天堂| 成人性生交大片免费看小说| 亚洲性夜色噜噜噜7777| 国产97在线视频| 久久久精品中文字幕| 亚洲国产天堂网精品网站| 中文字幕亚洲一区二区三区五十路| 欧美视频在线观看免费| 久久69精品久久久久久国产越南| 日本一区二区在线免费播放| 精品美女久久久久久免费| 91在线视频免费| 欧美视频专区一二在线观看| 亚洲国产99精品国自产| 少妇高潮 亚洲精品| 欧美另类xxx| 日韩中文字幕网| 日韩在线视频观看正片免费网站| 欧美与欧洲交xxxx免费观看| 成年无码av片在线| 91深夜福利视频| 日韩av男人的天堂| 亚洲国产精品小视频| 情事1991在线| 91精品视频在线播放| 午夜精品国产精品大乳美女| 国产欧美日韩中文| 久久久久久久久91| 51午夜精品视频| 日韩成人在线网站| 日韩乱码在线视频| 69av视频在线播放| 久久免费视频在线| 成人免费网站在线| 亚洲春色另类小说| 26uuu日韩精品一区二区| 色婷婷久久一区二区| 一区二区三区无码高清视频| 欧美激情视频在线观看| 日韩免费电影在线观看| 久久久噜噜噜久久| 亚洲成人黄色在线| 国产精品网站入口| 综合久久五月天| 亚洲**2019国产| 国产丝袜精品第一页| 97在线看免费观看视频在线观看| 亚洲大胆人体av| 中文字幕亚洲一区二区三区五十路| 欧美激情亚洲精品| 日韩亚洲欧美中文高清在线| 成人激情免费在线| 亚洲片国产一区一级在线观看| 亚洲激情 国产| 成人午夜黄色影院| 亚洲人成伊人成综合网久久久| 国产精品福利无圣光在线一区| 九九精品在线观看| 97国产在线观看| 精品国产一区二区三区在线观看| 日本中文字幕不卡免费| 日韩在线不卡视频| 欧美三级欧美成人高清www| 国产主播喷水一区二区| 欧美激情在线视频二区| 亚洲国产成人91精品| 一区二区三区国产视频| 一区国产精品视频| 亚洲天堂免费在线| 日韩在线视频播放| 久久久久久亚洲精品不卡| 8090成年在线看片午夜| 亚洲国产精品视频在线观看| 另类少妇人与禽zozz0性伦| 深夜精品寂寞黄网站在线观看| 欧美性一区二区三区| 久久久人成影片一区二区三区观看| 亚洲欧美国产精品久久久久久久| 成人字幕网zmw| 亚洲欧美在线看| 亚洲国产高清福利视频| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲国产欧美自拍| 第一福利永久视频精品| 久久中文字幕视频| 一区二区三区在线播放欧美| 亚洲一二三在线| 中文字幕日韩av电影| 日韩在线播放av| 亚洲免费人成在线视频观看| 欧美激情一级精品国产| 国产精品嫩草影院久久久| 久久影院模特热| 日韩欧美一区视频| 91沈先生在线观看| 中文国产亚洲喷潮| 亚洲精品v天堂中文字幕| 日韩成人高清在线| 日韩国产高清视频在线| 日本伊人精品一区二区三区介绍| 亚洲成人激情视频| 欧美做受高潮电影o| 国产精品久久久久久av福利| 亚洲国产日韩欧美在线图片| 国产精品www网站| 久久精品视频亚洲| 精品久久久香蕉免费精品视频| 茄子视频成人在线| 国产精品久久久久久一区二区| 成人激情视频小说免费下载| 欧美日韩一区二区免费视频|