A. django問題:搜索功能,contains的用法
搜索還是用lucene吧。研究一下,很快就可以上手。實在不成你用whoosh,可以實現多個字專段,復雜邏輯的屬搜索。
contains我沒有用過,不過既然它支持一個欄位的索引,按道理就可以支持多個欄位。 原理上,它應該是自己對MYSQL的某個欄位做了一個分詞與索引。
另外有些資料庫本身也支持一些簡單的搜索,只是數據量大會效率低。
B. django如何實現搜索功能並分頁每頁最多5條數據
列表分頁不要想復雜了,本質上來說,分為兩部分,界面操作和數版據庫查詢。
數據權庫查詢,僅僅在查詢的時候,加入分片,從第幾個到第幾個就行了
界面操作做好鏈接就行,這樣比你去用django自帶的分頁方便多了,還更符合你自己的實際需求
C. django 按照官方文檔做的分頁,又做了個搜索,現在搜索後,分頁錯誤,
可以,「<前頁」部分修改成「& l t ;前頁」中間的空格去掉
D. Django Admin站點查看用戶組成員
在用戶裡面可以看到!!這里看到的是組!!
E. django 做了搜索之後再做分頁 結果顯示第一頁是正常的 但是按下一頁後顯示出整個主頁的第二頁
我也是這個問題
F. 求助django 實現前端頁面檢索功能的代碼
設我們的 django 博客應用有如下的文章模型:
blog/models.pyclass Post(models.Model):
# 標題
title = models.CharField(max_length=70)
# 正文
body = models.TextField()
# 其他屬性
def __str__(self):
return self.title
先看到第 1 步,用戶在搜索框輸入搜索關鍵詞,因此我們要在博客上為用戶提供一個搜索表單,html 表單代碼大概像這樣:
<form method="get" action="/search/">
{% csrf_token %} <input type="search" placeholder="搜索" required>
<button type="submit">搜索</button></form>
特別注意在 form 標簽下有一個 {% csrf_token %},這是 django 用來防禦跨站請求偽造(CSRF)攻擊的機制。如果不知道什麼是 CSRF 的話也沒有關系,只要記住在使用 django 時,前端的表單代碼里一定要加上 {% csrf_token %}。
用戶輸入了搜索關鍵詞並點擊了搜索按鈕後,數據就被發送給了 django 後台伺服器。表單的 action 屬性的值為 /search/,表明用戶提交的結果將被發送給 /search/ 這個 URL。我們為這個 URL 綁定一個 django 視圖函數,在這個視圖函數里完成前面第 2 步提到的過程。假設我們把視圖函數的代碼寫在 blog/views.py 里:
blog/views.pydef search(request):
q = request.GET.get('q')
error_msg = ''
if not q:
error_msg = '請輸入關鍵詞'
return render(request, 'blog/errors.html', {'error_msg': error_msg})
post_list = Post.objects.filter(title__icontains=q)
return render(request, 'blog/results.html', {'error_msg': error_msg,
'post_list': post_list})
首先我們使用 request.GET.get('q') 獲取到用戶提交的搜索關鍵詞。用戶通過表單提交的數據 django 為我們保存在 request.GET 里,這是一個類似於 Python 字典的對象,所以我們使用 get 方法從字典里取出鍵 q 對應的值,即用戶的搜索關鍵詞。這里字典的鍵之所以叫 q 是因為我們的表單中搜索框 input 的 name 屬性的值是 q,如果修改了 name 屬性的值,那麼這個鍵的名稱也要相應修改。
接下來我們做了一個小小的校驗,如果用戶沒有輸入搜索關鍵詞而提交了表單,我們就無需執行查詢,而是渲染一個錯誤頁面提示用戶請輸入關鍵詞。
如果用戶輸入了搜索關鍵詞,我們就通過 filter 方法從資料庫里過濾出符合條件的所有文章。這里的過濾條件是 title__icontains=q,即 title 中包含(contains)關鍵字 q,前綴 i 表示不區分大小寫。這里 icontains 是查詢表達式(Field lookups),其用法是在模型需要篩選的屬性後面跟上兩個下劃線。django 內置了很多查詢表達式,建議過一遍 django 官方留個印象,了解每個表達式的作用,以後碰到相關的需求就可以快速定位到文檔查詢其用途:Field lookups
接下來就是渲染搜索結果頁面,顯示符合搜索條件的文章列表,下面是一個模板的簡單示例:
results.html
{% if error_msg %} <p>{{ error_msg }}</p>{% endif %}
{% for post in post_list %} <div>
在這里顯示文章的相應信息 </div>{% empty %} <div class="no-post">
沒有搜索到符合條件的文章 </div>{% endfor %}
有了視圖函數後記得把視圖函數映射到相應了 URL,前面我們表單數據提交的 URL 為 /search/,因此將視圖函數 search 綁定到該 URL 上。
blog/urls.pyurlpatterns = [
# 其他 url 配置
url(r'^search/$', views.search, name='search'),]
大功告成!
G. django 樹結構怎麼做搜索
每個節點都有 名稱和代號
比如China-C 就是 代號就是C
如果前台輸入C 怎麼回把C下面所有的答節點搜索出了 如果輸入CG 怎麼把Guangzhou-G下面所有的節點都搜索處理
不要用迭代啊 效率太低
H. Python django 前台使用ajax 搜索資料庫,返回到前台的傳值方式詳解一下吧,傳遞的值是什麼類型的
json數據
用djangorestframework