基于Django的商城开发项目笔记(五)

十六、实现商品搜索功能

16.1商品搜索功能的分析:

基于Django的商城开发项目笔记(五)

 

16.2全文搜索框架haystack和搜索引擎whoosh的安装和配置:

16.2.1安装python包:

        pip install django-haystack

        pip install whoosh

16.2.2在settings.py中配置:

基于Django的商城开发项目笔记(五)

 

基于Django的商城开发项目笔记(五)

16.3设置索引文件生成

16.3.1在goods目录下新建一个search_indexes.py(名字固定)文件:

基于Django的商城开发项目笔记(五)

 

16.3.2在search_indexes.py文件中定义一个商品索引类:

基于Django的商城开发项目笔记(五)

 

16.3.3在templates下面新建目录search/indexes/goods

基于Django的商城开发项目笔记(五)

 

16.3.4在goodssku_text.txt文件中定义:

基于Django的商城开发项目笔记(五)

 

16.3.5使用命令生成索引文件:

    python manage.py rebuild_index

 

16.4全文检索的使用:

16.4.1在templates/base.html文件中表单搜索时设置表单内容如下:

基于Django的商城开发项目笔记(五)

 

16.4.2在项目的urls.py文件中配置对应的url:

基于Django的商城开发项目笔记(五)

 

16.4.3全文检索结果:

搜索出结果后,haystack会把搜索出的结果传递给templates/search目录下的search.html,传递的上下文包括:

query:搜索关键字

page:当前页的page对象 –>遍历page对象,获取到的是SearchResult类的实例对象,

            对象的属性object才是模型类的对象。

paginator:分页paginator对象

 

16.4.4在search.html文件中显示数据:

基于Django的商城开发项目笔记(五)

 基于Django的商城开发项目笔记(五)

 

16.5扩展:使用jieba分词替换原有的分词方式

 

十七、商品详情页动态修改物品和总价功能

17.1在templates/detail.html商品详情页中使用JS实现:

基于Django的商城开发项目笔记(五)

基于Django的商城开发项目笔记(五)

基于Django的商城开发项目笔记(五)

 

十八、购物车功能的实现

18.1配置购物车的url,在cart/urls.py文件中配置:

基于Django的商城开发项目笔记(五)

 

18.2在cart/views.py文件中定义CartAddView类:

基于Django的商城开发项目笔记(五)

 

基于Django的商城开发项目笔记(五)

   基于Django的商城开发项目笔记(五)

       基于Django的商城开发项目笔记(五)

 

18.3在templates/detail.html文件中添加购物车相关逻辑:

18.3.1获取商品的sku_id:

基于Django的商城开发项目笔记(五)

 

18.3.2将商品添加到购物车的js逻辑:

基于Django的商城开发项目笔记(五)

      基于Django的商城开发项目笔记(五)

 

18.4购物车页面的显示逻辑:

18.4.1在cart/views.py文件中新建CartInfoView类:

基于Django的商城开发项目笔记(五)

 基于Django的商城开发项目笔记(五)

18.4.2在templates/cart.html中显示商品信息:

基于Django的商城开发项目笔记(五)

基于Django的商城开发项目笔记(五)

 

18.4.3在templates/cart.html文件中完成全选功能:

基于Django的商城开发项目笔记(五)

   基于Django的商城开发项目笔记(五)

 基于Django的商城开发项目笔记(五)

18.4.4在cart/urls.py中添加新的url:

基于Django的商城开发项目笔记(五)

 

18.4.5在cart/views.py文件中编写CartUpdateView类:

基于Django的商城开发项目笔记(五)

 基于Django的商城开发项目笔记(五)

18.4.6在templates/cart.html实现购物车记录的更新功能:

基于Django的商城开发项目笔记(五)

  基于Django的商城开发项目笔记(五)

  基于Django的商城开发项目笔记(五)

 

 基于Django的商城开发项目笔记(五)

  基于Django的商城开发项目笔记(五)

 

18.4.7在cart/views.py文件中实现购物车记录删除的功能:

基于Django的商城开发项目笔记(五)

 

基于Django的商城开发项目笔记(五)

   基于Django的商城开发项目笔记(五)

18.4.8在templates/cart.html文件中实现商品删除功能:

基于Django的商城开发项目笔记(五)