博客还需要添加一个搜索博客内容的模块,类已经在最开始的框架中定义,并且需要调用到上一篇文章的模块cut_pages来实现搜索内容的分页,实际上于上一篇文章实现的功能较为类似。
class SearchHandler(tornado.web.RequestHandler):
def get(self, page_index):
try:
results, pages, page_infos = cut_pages(page_index, "query")
self.render('blog_title.html', entrys=results, page_num=int(pages), page_infos=page_infos)
except:
self.redirect("/index")
def post(self):
query = self.get_argument('query')
query = query + "0"
self.redirect("/query/" + query)
代码如上,需要一个get功能,一个post功能用来接收表单,在get功能中调用cut_pages实现搜索博客内容,然后分页展示,如果没有搜索到内容则会重定向到主页。
然后是post表单功能,该post会接收前端的表单,前端代码如下:
<form method="post" action="/query">
<input type="text" name="query" id="query" placeholder="Search" />
</form>
当用户输入搜索内容并提交时,就会被后端代码重定向到/query/搜索内容0 0表示第一页,然后重定向的路径就会通过get功能从mysql中提取出相关内容,并分页展示到html页面中。
至此,搭建博客的部分均已完成,接下来我还会添加一些绘图工具的页面,绘图工具均用python编写,会涉及到numpy、pandas、sklearn、matplotlib.pyplot等几个重要的数据分析模块。