[Python #17] [Django #10] 搜索功能,还差UIsteemCreated with Sketch.

pixabay

给搜索穿上UI,先简单尝试HTML的form,能力有限,只能先简单尝试。

添加 form

首先,在 django的 templates 文件夹下,给 base.html 添加 form 。

  1. action 值先用硬编码 /@june0620/search赋值,账号应该用变量,但目前还不知道怎么用变量。 没办法,谁让我是django初学者呢。
  2. method赋值get应该比post好点,因为是搜索功能。
  3. 创建三个 input 标签,命名为 tags, titles, texts 。
      <div>
          <p></p>
          <form action="/@june0620/search/" method="get">
              <label >Tags: </label>
              <input id="tags" type="text" name="tags" value="">
              <label >Titles: </label>
              <input id="titles" type="text" name="titles" value="">
              <label >Texts: </label>
              <input id="texts" type="text" name="texts" value="">
              <input type="submit" value="Search">
          </form>       
      </div>

大致就是这个模样,因还没装CSS,只能这样了,焦点先放在功能上。👇

设置 URL

从 form的 action 收到的值需要设置在 urls.py 下。这部分我懂怎么用变量,哈哈。
url pattern 若匹配就调用 views.py的 SearchPosts 类。

    path('@<slug:account>/search/', SearchPosts.as_view(), name='search'),

处理 form 参数及搜索

从 form 传到的 query string 需要我用 split(',')转为list 并存到 query dictionary。
这样可以在 UI 用逗号搜索多个关键词,结果会更丰富。
(目前还是临时性的实现,等日后实现完UI,再研究。)

class SearchPosts(ListView):
    template_name = 'album.html'
    context_object_name = 'all_posts'

    def get(self, request, *args, **kwargs):
        query = {
            'tags': request.GET.get('tags').split(','),
            'titles': request.GET.get('titles').split(','),
            'texts': request.GET.get('texts').split(',')
        }
        se = Search(account=kwargs['account'], query=query)
        self.queryset = se.search_posts()
        return super().get(request, *args, **kwargs)

结果

[Cookie 😅]
Python 3.7.4
Django 2.2.4
steem-python 1.0.1
goorm IDE 1.3

Sort:  

[US$18.50](▼39%)[Xiaomi]🚨2020 최신 항바이러스 필터 입고!!🚨 샤오미 공기청정기 필터 / 미에어 필터 / 고효율 정화 / 활성탄 필터 / 포름알데히드 제거 / 고밀도 헤파필터 / 무료배송

WWW.QOO10.COM

@june0620 transfered 1.0 KRWP to @krwp.burn. voting percent : 0.74%, voting power : 76.03%, steem power : 1906832.78, STU KRW : 1200.
@june0620 staking status : 60 KRWP
@june0620 limit for KRWP voting service : 0.12 KRWP (rate : 0.002)
What you sent : 1.0 KRWP
Refund balance : 0.88 KRWP [46720065 - 93e5c94eb40dad396752bcb693f7ea5014bcca1c]

多谢,回拍 😄

来拍俊👏🏻

回拍👏 萍萍~

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 64344.02
ETH 3142.36
USDT 1.00
SBD 4.01