最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

改進(jìn)Django中的表單的簡(jiǎn)單方法

 更新時(shí)間:2015年07月17日 17:31:39   投稿:goldensun  
這篇文章主要介紹了改進(jìn)Django中的表單的簡(jiǎn)單方法,Django是Python重多人氣框架中最著名的一個(gè),需要的朋友可以參考下

首先,search()視圖對(duì)于空字符串的處理相當(dāng)薄弱——僅顯示一條”P(pán)lease submit a search term.”的提示信息。 若用戶要重新填寫(xiě)表單必須自行點(diǎn)擊“后退”按鈕, 這種做法既糟糕又不專(zhuān)業(yè)。如果在現(xiàn)實(shí)的案例中,我們這樣子編寫(xiě),那么Django的優(yōu)勢(shì)將蕩然無(wú)存。

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

from django.http import HttpResponse
from django.shortcuts import render_to_response
from mysite.books.models import Book

def search_form(request):
  return render_to_response('search_form.html')

def search(request):
  if 'q' in request.GET and request.GET['q']:
    q = request.GET['q']
    books = Book.objects.filter(title__icontains=q)
    return render_to_response('search_results.html',
      {'books': books, 'query': q})
  else:
    **return render_to_response('search_form.html', {'error': True})**

(注意,將search_form()視圖也包含進(jìn)來(lái)以便查看)

這段代碼里,我們改進(jìn)來(lái)search()視圖:在字符串為空時(shí)重新顯示search_form.html。 并且給這個(gè)模板傳遞了一個(gè)變量error,記錄著錯(cuò)誤提示信息。 現(xiàn)在我們編輯一下search_form.html,檢測(cè)變量error:

<html>
<head>
  <title>Search</title>
</head>
<body>
  **{% if error %}**
    **<p style="color: red;">Please submit a search term.</p>**
  **{% endif %}**
  <form action="/search/" method="get">
    <input type="text" name="q">
    <input type="submit" value="Search">
  </form>
</body>
</html>

我們修改了search_form()視圖所使用的模板,因?yàn)閟earch_form()視圖沒(méi)有傳遞error變量,所以在條用search_form視圖時(shí)不會(huì)顯示錯(cuò)誤信息。

通過(guò)上面的一些修改,現(xiàn)在程序變的好多了,但是現(xiàn)在出現(xiàn)一個(gè)問(wèn)題: 是否有必要專(zhuān)門(mén)編寫(xiě)search_form()來(lái)顯示表單? 按實(shí)際情況來(lái)說(shuō),當(dāng)一個(gè)請(qǐng)求發(fā)送至/search/(未包含GET的數(shù)據(jù))后將會(huì)顯示一個(gè)空的表單(帶有錯(cuò)誤信息)。 所以,只要我們改變search()視圖:當(dāng)用戶訪問(wèn)/search/并未提交任何數(shù)據(jù)時(shí)就隱藏錯(cuò)誤信息,這樣就移去search_form()視圖以及對(duì)應(yīng)的URLpattern。

def search(request):
  error = False
  if 'q' in request.GET:
    q = request.GET['q']
    if not q:
      error = True
    else:
      books = Book.objects.filter(title__icontains=q)
      return render_to_response('search_results.html',
        {'books': books, 'query': q})
  return render_to_response('search_form.html',
    {'error': error})

在改進(jìn)后的視圖中,若用戶訪問(wèn)/search/并且沒(méi)有帶有GET數(shù)據(jù),那么他將看到一個(gè)沒(méi)有錯(cuò)誤信息的表單; 如果用戶提交了一個(gè)空表單,那么它將看到錯(cuò)誤提示信息,還有表單; 最后,若用戶提交了一個(gè)非空的值,那么他將看到搜索結(jié)果。

最后,我們?cè)偕晕⒏倪M(jìn)一下這個(gè)表單,去掉冗余的部分。 既然已經(jīng)將兩個(gè)視圖與URLs合并起來(lái),/search/視圖管理著表單的顯示以及結(jié)果的顯示,那么在search_form.html里表單的action值就沒(méi)有必要硬編碼的指定URL。 原先的代碼是這樣:

<form action="/search/" method="get">

現(xiàn)在改成這樣:

<form action="" method="get">

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

相關(guān)文章

  • python虛擬環(huán)境的安裝和配置(virtualenv,virtualenvwrapper)

    python虛擬環(huán)境的安裝和配置(virtualenv,virtualenvwrapper)

    這篇文章主要介紹了python虛擬環(huán)境的安裝和配置(virtualenv,virtualenvwrapper),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python使用TextRank算法實(shí)現(xiàn)文獻(xiàn)關(guān)鍵信息提取

    Python使用TextRank算法實(shí)現(xiàn)文獻(xiàn)關(guān)鍵信息提取

    ?TextRank算法是一種基于圖的排序算法,主要用于文本處理中的關(guān)鍵詞提取和文本摘要,下面我們就來(lái)看看如何使用?TextRank算法實(shí)現(xiàn)文獻(xiàn)關(guān)鍵信息提取吧
    2025-03-03
  • 詳解Python locals()的陷阱

    詳解Python locals()的陷阱

    這篇文章主要介紹了詳解Python locals()的陷阱,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • python實(shí)時(shí)監(jiān)控cpu小工具

    python實(shí)時(shí)監(jiān)控cpu小工具

    這篇文章主要為大家詳細(xì)介紹了python實(shí)時(shí)監(jiān)控cpu的小工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • pytorch中的matmul與mm,bmm區(qū)別說(shuō)明

    pytorch中的matmul與mm,bmm區(qū)別說(shuō)明

    這篇文章主要介紹了pytorch中的matmul與mm,bmm區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python遍歷文件夾 處理json文件的方法

    Python遍歷文件夾 處理json文件的方法

    今天小編就為大家分享一篇Python遍歷文件夾 處理json文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python3.6數(shù)獨(dú)問(wèn)題的解決

    python3.6數(shù)獨(dú)問(wèn)題的解決

    這篇文章主要為大家詳細(xì)介紹了python3.6數(shù)獨(dú)問(wèn)題的解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python?hashlib模塊與哈希算法保護(hù)數(shù)據(jù)完整性教程

    Python?hashlib模塊與哈希算法保護(hù)數(shù)據(jù)完整性教程

    hashlib模塊為Python提供了一種簡(jiǎn)便的方式來(lái)使用各種哈希算法,如MD5、SHA-1、SHA-256等,哈希函數(shù)廣泛用于密碼學(xué)、數(shù)據(jù)完整性驗(yàn)證和安全存儲(chǔ)等領(lǐng)域
    2024-01-01
  • 火遍全網(wǎng)的Python二次元特效輕松掌握

    火遍全網(wǎng)的Python二次元特效輕松掌握

    本篇文章介紹了用python編寫(xiě)的二次元特效變化小程序,詳細(xì)介紹了整個(gè)思路和過(guò)程以及代碼,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 基于Python爬蟲(chóng)采集天氣網(wǎng)實(shí)時(shí)信息

    基于Python爬蟲(chóng)采集天氣網(wǎng)實(shí)時(shí)信息

    這篇文章主要介紹了基于Python爬蟲(chóng)采集天氣網(wǎng)實(shí)時(shí)信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

拜城县| 信丰县| 青海省| 台前县| 平南县| 繁昌县| 河间市| 罗定市| 山西省| 达州市| 望都县| 克东县| 大邑县| 九龙城区| 慈利县| 黑山县| 石台县| 高州市| 革吉县| 庆云县| 东阿县| 明光市| 阜南县| 星子县| 梅河口市| 台北市| SHOW| 海安县| 正蓝旗| 泗阳县| 华安县| 太谷县| 武穴市| 吉首市| 临沭县| 涿鹿县| 当雄县| 山东省| 通许县| 文水县| 贺州市|